先序法建立一棵二叉樹 15

2025-04-04 06:25:29 字數 1833 閱讀 7658

先序法建立一棵二叉樹

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...

c語言二叉樹題目 一棵二叉樹有度為1的結點,t個度為2的結點,則該二叉樹有幾個結點

任意二叉樹度為0的結 點 葉子節點 總比度為2的結點多一個,t個度為2的結點,則專葉子節點為t 1個,加上1個根屬節點,總共10 2t 1,你是不是打錯了,不應該是t而是7啊?竭誠為您服務,很高興為您服務 在二叉樹中,有個公式 我們用nx表示度為x的結點的個數,那麼有n0 n2 1,那我們就有度為0...

先序和中序建立二叉樹,然後輸出後序遍歷,用C語言的

include include include 二叉樹資料結構定義 typedef struct binodebitnode,bitree 遞迴法建立二叉樹 void createbitree bitree bt else 遞迴法先序遍歷二叉樹 void preordertree bitree ro...