動態建二叉搜尋樹,並更新樹高

2021-09-22 05:46:18 字數 859 閱讀 5214

1.需求

動態建二叉搜尋樹,並更新樹高。

2.分析

建立二叉搜尋樹是很簡單的。更新樹高也很簡單,我們只需要在插入值之後動態更新當前root的高度即可。

3.**

#include

#include

#define maxn 100

using namespace std;

int n ;

struct node

;node*

newnode

(int v)

//更新節點高度

void

updateheight

(node* root)

//插入值

void

insert

(node*

&root,

int v)

if(v > root->data )

else

}void

preorder

(node* root)

intmain()

preorder

(root)

;}

4.測試用例
5

88 70 61 96 120

788 70 61 96 120 90 65

5.注意點
if

(v > root->data )

else

比如說,現在的樹中已有的節點是88 70 61 了,在插入96的時候,就需要插入到根節點的右子樹了(所以需要對根節點的高度進行更新,但是我們需要從最深處往最低處更新),所以借助遞迴實現。

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...

二叉搜尋樹 修剪二叉搜尋樹

第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...

樹 二叉樹 二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 13輸出 true 示例 2 輸入 5 14 3 6輸出 false 解釋 輸入為 ...