C 二叉查詢樹插入資料

2021-10-04 03:36:53 字數 1402 閱讀 2387

二叉查詢樹(binary search tree),它是一顆具有下列性質的二叉樹:

若左子樹不空,則左子樹上所有結點的值均小於或等於它的根節點的值;

若右子數不空,則右子樹上所有節點的值均大於或等於它的根節點的值;

左、右子樹也分別為二叉排序樹。

等於的情況只能出現在左子樹或右子樹中的某一側。

由於二叉查詢樹的中序遍歷是從小到大的,故又名二叉排序樹(binary sort tree)。

將某節點(insert_node),插入以node為根二叉查詢樹中:

如果insert_node節點值小於當前node節點值:

如果node有左子樹,則遞迴地將該節點插入至左子樹中

否則,將node->left賦值為該節點位址

否則(大於等於情況):

如果node有右子樹,則遞迴的將該節點插入至右子樹為根二叉排序樹中

否則,將node->right賦值為該節點位址

#include

#include

struct treenode;}

;void

bst_insert

(treenode * node, treenode * insert_node)

else

}else

else}}

void

preorder

(treenode* node,

int layer)

for(

int i =

0; i < layer; i++

)printf

("[%d]\n"

,node-

>val)

;preorder

(node-

>left, layer+1)

;preorder

(node-

>right, layer +1)

;}intmain()

;for

(int i =

0; i <

sizeof

(test)

/sizeof

(test[0]

); i++

)for

(int i =

0; i < node_vec.

size()

; i++

)preorder

(&root,0)

;return0;

}

執行結果:

[8]

-----[

3]----

------[

1]----

------[

6]-----[

10]----

------[

15]

二叉查詢樹 插入 刪除 查詢

二叉查詢樹是滿足以下條件的二叉樹 1.左子樹上的所有節點值均小於根節點值,2右子樹上的所有節點值均不小於根節點值,3,左右子樹也滿足上述兩個條件。二叉查詢樹的插入過程如下 1.若當前的二叉查詢樹為空,則插入的元素為根節點,2.若插入的元素值小於根節點值,則將元素插入到左子樹中,3.若插入的元素值不小...

二叉查詢樹 插入 刪除 查詢

二叉查詢樹 插入 刪除 查詢 二叉查詢樹 是滿足以下條件的二叉樹 1.左子樹上的所有節點值均小於根節點值,2右子樹上的所有節點值均不小於根節點值,3,左右子樹也滿足上述兩個條件。二叉查詢樹的插入 過程如下 1.若當前的二叉查詢樹為空,則插入的元素為根節點,2.若插入的元素值小於根節點值,則將元素插入...

二叉搜尋樹 插入 查詢

宣告 第一次寫二叉搜尋樹,可能會有bug 這棵二叉搜尋樹以中序遍歷的方式輸出,所以插入 儲存的規則也是按照中序遍歷的規則 include using namespace std struct node node root,nil 根節點和乙個空結點 void insert int key else ...