求樹的高度(C )

2021-10-22 21:26:01 字數 852 閱讀 7384

現給定一棵樹,請你求出它的高度。

輸入給出二叉樹的資訊。對於每棵樹,首先在一行中給出乙個非負整數n (≤10),即該樹的結點數(此時假設結點從0到n−1編號);隨後n行,第i行對應編號第i個結點,給出該結點中儲存的1個英文大寫字母、其左孩子結點的編號、右孩子結點的編號。如果孩子結點為空,則在相應位置上給出「-」。給出的資料間用乙個空格分隔。注意:題目保證每個結點中儲存的字母是不同的。

輸出樹的高度。

8a 1 2

b 3 4

c 5 -

d - -

e 6 -

g 7 -

f - -

h - -

#include

using

namespace std;

typedef

char elementtype;

typedef

struct tnode btree;

struct tnodet[

101]

;int vis[

101]

;//標記根的位置

//樹的構建

intbuildtree

(btree t)

else t[i]

.left =-1

;if(c !=

'-')

else t[i]

.right =-1

;}for(

int i=

0; i)return root;

}//樹的高度

intgetheight

(int bt)

}int

main()

求三叉樹高度

有12345個結點的滿3叉數的高度為 寫出計算過程 1 層 1 節點數 1 2 3 4 層 2 節點數 3 5 6 7 8 9 10 11 12 13 層 3 節點數 9 滿三叉樹每層節點數目 假設k 1層有n個節點 那麼第k層就應該有3n個節點。也就是說這是乙個首項是1,公比是3的等比數列。第n層...

二叉樹求樹的高度

法1 後序遍歷,結點最大棧長即為樹的高度 法2 層次遍歷,層次即為高度 法3 遞迴求樹高 輸入 a b c d e f 輸出 5 include include includeusing namespace std typedef struct bitnodebitnode,bitree void ...

C 二叉樹求最大高度

方法一 通過乙個遞迴即可輕鬆實現,通過h記錄訪問結點所在的高度,max height記錄所到達的最大高度。核心 如下 int max height 1 void getbtheight btnode bt,int h getbtheight bt m pleft,h 1 getbtheight bt...