現給定一棵樹,請你求出它的高度。
輸入給出二叉樹的資訊。對於每棵樹,首先在一行中給出乙個非負整數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...