C 二叉樹求最大高度

2021-08-21 06:40:48 字數 1254 閱讀 5049

方法一:通過乙個遞迴即可輕鬆實現,通過h記錄訪問結點所在的高度,max_height記錄所到達的最大高度。

核心**如下:

int max_height = -1;

void getbtheight(btnode *bt,int h)

getbtheight(bt->m_pleft,h+1);

getbtheight(bt->m_pright,h+1);

}

方法二(簡潔版):

int getbtheight_2(btnode *bt)
程式完整**如下:

#include#includeusing namespace std;

typedef struct binarytreenodebtnode;

int max_height = -1;

void addbtnode(btnode *&mybt,int val);//新增節點 

void createbt(btnode *&bt,int arr,int n);//建立二叉排序樹,通過*&來改變指標的值

void getbtheight(btnode *bt,int index);//獲取二叉樹的高度

int getbtheight_2(btnode *bt);//獲取二叉樹的高度 

void midorder_showbt(btnode *mybt);//中序遍歷列印,如果是二叉排序樹,列印結果與單調遞增陣列一樣 

int main();

createbt(mybt,arr,10);

midorder_showbt(mybt);

coutm_pright ==nullptr)

getbtheight(bt->m_pleft,h+1);

getbtheight(bt->m_pright,h+1);

}int getbtheight_2(btnode *bt)

void addbtnode(btnode *&mybt,int val)

if(val == mybt->value)

else if(val < mybt->value)

else } 

void midorder_showbt(btnode *mybt)

執行結果如下:

求二叉樹高度

函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測試程式樣例 include...

求二叉樹高度

本題要求給定二叉樹的高度。函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測...

求二叉樹高度

題目來自於pta 函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測試程式樣...