二叉搜尋樹的插入 遞迴 迭代

2021-10-20 19:14:23 字數 716 閱讀 8048

題目鏈結

1.返回值和引數:輸入根節點 和插入值val,輸出插入後的根節點

2.單層遞迴邏輯:val比當前值大則插入在其右子樹,否則插入在其左子樹

3.終止條件:當前節點為空,則val插入在這裡返回

treenode*

insertintobst

(treenode* root,

int val)

treenode*

insertintobst

(treenode* root,

int val)

treenode* curnode = root;

//臨時節點遍歷,保持頭節點不動

treenode* prenode = root;

//記錄插入的是哪個節點的子樹

while

(curnode)

//樹不為空搜尋待插入的位置

treenode* newnode =

newtreenode

(val);if

(prenode-

>val > val)

prenode-

>left = newnode;

else

prenode-

>right = newnode;

return root;

}

二叉搜尋樹(遞迴 非遞迴)

完整源 在此 1 二叉搜尋樹的概念 二叉搜尋樹又稱二叉排序樹,它或者是一棵空樹,或者是具有以下性質的二叉樹。若它的左子樹不為空,則左子樹上所有節點的值都小於根節點的值 若它的右子樹不為空,則右子樹上所有的節點的值都大於根節點的值 它的左右子樹也分為二叉搜尋樹 此二叉樹的中序遍歷結果為 0,1,2,3...

二叉搜尋樹的迭代器

我們經常使用著我們並不熟悉的函式 類,我們只知道它們所提供的介面以及怎樣使用。這就像我們開車在馬路上,你可能並不知道汽車是如何執行,或許你會說這並不需要知道。但至少知道一些回在車拋錨的時候你能做一些事,而不是抽根菸無所事事等維修隊過來 如果路上很擠,你就倒霉了 我們也有必要知道問題 在程式出問題的時...

二叉搜尋樹 插入 查詢

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