int
getheight
( bintree bt )
;
其中bintree結構定義如下:
typedef
struct tnode *position;
typedef position bintree;
struct tnode
;
要求函式返回給定二叉樹bt的高度值。
#include
#include
typedef
char elementtype;
typedef
struct tnode *position;
typedef position bintree;
struct tnode
;bintree creatbintree()
;/* 實現細節忽略 */
intgetheight
( bintree bt )
;int
main()
/* 你的**將被嵌在這裡 */
}
這個遞迴的過程很有意思,拿題中的例子。
;這條語句,遞去時,bt剛開始是a,然後是b,然後d,到了d,d->left為null有返回個1,就是這個
hlmax=
getheight
(d->left)=1
;
繼續走
hrmax=
getheight
(d->right)=1
;
這時
return
(hmax+1)=2;
返回到**呢,當然是b
hlmax=
getheight
(b->left)=2
;
這樣就推出了b左子樹的高度(加上b自己)。
再走b的右邊……是3。如此,由最小情形推出最大a的高度是4。
#include
#include
typedef
char elementtype;
typedef
struct tnode *position;
typedef position bintree;
struct tnode
;bintree creatbintree
(void);
//建立
intgetheight
( bintree bt )
;//求高度
void
delete
(bintree bt)
;//釋放記憶體
intmain
(void
)/* 你的**將被嵌在這裡 */
bintree creatbintree
(void
)//先序建立樹
elementtype ch;
scanf
("%c"
,&ch);if
(ch==
'#')
else
return t;
}void
delete
(bintree bt)
delete
(bt->left)
;delete
(bt->right)
;free
(bt);}
intgetheight
( bintree bt )
else
return hmax;
}
這裡我們用先序建立的方法建立乙個二叉樹,如果按題中樹,已知樹的樣子,所以我們確定先序序列,對於上面的**輸入應該是。
abd##fe###cg#h##i##
6 8 求二叉樹高度 20分
本題要求給定二叉樹的高度。函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測...
6 8 求二叉樹高度 20分
本題要求給定二叉樹的高度。函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測...
6 8 求二叉樹高度 20分
本題要求給定二叉樹的高度。函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測...