二叉搜尋樹:乙個節點的左子節點的關鍵字的值小於這個節點,右子節點的關鍵字的值大於或者等於這個父節點
在查詢過程中,用變數current
來儲存正在檢視的節點,引數key
是要查詢的值,查詢從root
開始,因此開始把current
設為根。之後,在while
迴圈中,將要查詢的值,key
與idata
做比較。小於,則current
設為左節點,大於則設為右節點。
current
在查詢過程中會變成null
才能發現它查詢的上乙個節點是不是空節點,因此,引入乙個新的變數parent(current父節點)
來儲存遇到的最後乙個不是null
的節點。
查詢null
節點
空樹root=newnode
插入葉節點,即parent
沒有左子節點parent.leftchild=newnode
插入非葉節點,即parent
沒有右子節點`parent.rightchild=newnode
有兩個子節點
刪除有兩個字節點的節點,用它的中序後繼來代替該節點getsuccessor()
。
尋找後繼節點:比要刪除節點大的下乙個節點right->left->left->...->left->left=null
完整**,我託管在github上,如果對你有幫助,請給我點個star以示肯定和鼓勵。
資料結構 二叉搜尋樹 BST
一棵二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數 節點的右子樹只包含大於當前節點的數 所有左子樹和右子樹自身必須也是二叉搜尋樹 若輸出二叉搜尋樹的中序遍歷序列,則這個序列是非遞減 非遞增 有序的 圖1 節點有 a,b,c,d,e,f,g 葉子結點 d,e,f,g 其中結點a又被稱為根節...
資料結構 3二叉搜尋樹 BST
結構體node 左結點left 右結點right 資料data 類bst 根結點root 主要功能有 新增 刪除 查詢 遍歷 前序遍歷 中序遍歷 後序遍歷 層序遍歷 深度優先搜尋 廣度優先搜尋 高度計算 時間複雜度 1 新增 時間複雜度為o logn 2 刪除 時間複雜度為o logn 簡單描述一下...
資料結構之 二叉搜尋樹 二叉排序樹 BST樹
二叉搜尋樹簡稱bst樹 二叉搜素樹是二叉樹的一種,陣列這種資料結構也能夠實現對元素的快速查詢,但是對於元素的新增 刪除和更新操作,使用陣列來實現的話,就會存在較高的時間複雜度 o n 級別。對於新增 刪除 查詢操作若是要保持較低的時間複雜度可以採用二叉搜尋樹來實現。二叉搜尋樹又稱二叉排序樹,其節點之...