6 8 求二叉樹高度 20分

2021-10-06 16:26:08 字數 2352 閱讀 2255

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的高度值。裁判測...