先序法建立一棵二叉樹
1樓:網友
#include
using namespace std;
struct tree
int data;
tree *lchild,*rchild;
class ttree
private:
tree *root;
tree *creat(tree *bt);
public:
ttree()
int depth(tree *root);
int depth()
tree *ttree::creat(tree *bt)char ch;
cin>消豎》ch;
if(ch=='#')bt=null;
else bt=new tree;
bt->data=ch;
bt->lchild=creat(bt->lchild);
bt->rchild=creat(bt->rchild);
return bt;
int ttree::depth(tree *bt)int zuo, you,h;//分別代表 左樹的層數 右樹的層數 和深度。
if(bt==null)
return 0;
else zuo=depth(bt->lchild);
you=depth(bt->rchild);
h=1+(zuo>you?zuo:you);
return h;
int main()
int f=1;
while(f!=0)
ttree b;
f=;cout 2樓:匿名使用者 大個樹,還用非遞迴,可讀廳歲性不高啊。。。估計是棧出現了溢位,待我仔細閱讀,然後補充。 這個程式可讀性扮神睜太差了,同學幫的忙瞎猜,呵呵。 # include 3樓:匿名使用者 春歸大地人間暖 福降神州喜臨門 橫批:福喜盈門。 有序二叉樹 4樓:機器 b答案解析。 分析] 本題考查資料結構中二叉樹基本知識。 對樹可進行先根遍歷、後根遍歷和層序遍歷。例如,對題中(a)所示樹進行先根遍歷的序列為,後根遍歷的序列為,層序遍歷序列為。 對二叉樹可進行先序遍歷、中序遍歷、後序遍歷和層序遍歷。對題中(b)所示二叉樹進行遍歷,先序序列為,中序序列為,後序序列為,層序序列為。 顯然,將樹轉換為二叉樹後,樹的先根序列等於對應二叉樹的先序序列,樹的後根序列等於對應二叉樹的中序序列。 對一棵排序二叉樹進行( )時,可以得到有序序列。 5樓:考試資料網 巧尺答案】:b 二叉樹的訪問有3種方式:前手寬歲序遍歷、中序遍歷、後序遍畢睜歷,但只有中序遍歷可以得到有序序列。 二叉樹中前序,中序,後序,知道那兩個就可以確定二叉樹 6樓:念玉蘭遲戊 因為二叉樹前序遍歷為:abcdefghi,所以這棵樹的根結點為a; 又因為中序遍歷為:bcaedghfi,所以這棵樹的左子樹為bc,右子樹為edghfi; 現在先看左子樹中序遍歷:bc,由前序遍歷abcdefghi,所以b為左子樹的根結點; 現看右子樹中序遍歷:edghfi,由前序遍歷defghi,得d為右子樹的根結點; 依些遞推就可以將各個子樹化出來,結果為:cbehgifda 可以根據公copy式進行推導,假設n0是度為0的結點總數 即葉子結點數 n1是度為1的結點總數,n2是度為2的結點總數,由二叉樹的性質可知 n0 n2 1,則n n0 n1 n2 其中n為完全二叉樹的結點總數 由上述公式把n2消去得 n 2n0 n1 1,由於完全二叉樹中度為1的結點數只有兩種可能0... 任意二叉樹度為0的結 點 葉子節點 總比度為2的結點多一個,t個度為2的結點,則專葉子節點為t 1個,加上1個根屬節點,總共10 2t 1,你是不是打錯了,不應該是t而是7啊?竭誠為您服務,很高興為您服務 在二叉樹中,有個公式 我們用nx表示度為x的結點的個數,那麼有n0 n2 1,那我們就有度為0... include include include 二叉樹資料結構定義 typedef struct binodebitnode,bitree 遞迴法建立二叉樹 void createbitree bitree bt else 遞迴法先序遍歷二叉樹 void preordertree bitree ro...設一棵完全二叉樹共有結點,則在該二叉樹中有多少個葉子
c語言二叉樹題目 一棵二叉樹有度為1的結點,t個度為2的結點,則該二叉樹有幾個結點
先序和中序建立二叉樹,然後輸出後序遍歷,用C語言的