二叉搜尋樹的常用操作

2021-09-22 21:04:17 字數 948 閱讀 1229

二叉搜尋樹(bst)定義

二叉搜尋樹的查詢

遞迴查詢

position find

(bintree bst,elementype x)

非遞迴查詢
position find

(bintree bst,elementype x)

return bst;

}

查詢二叉搜尋樹的最大值和最小值
position findmin

(bintree bst)

position findmax

(bintree bst)

二叉搜尋樹的插入插入

bintree insert

(bintree bst,elementype x)

else

//開始找要插入元素的位置

}

二叉搜尋樹的刪除

要考慮三種情況

要刪除的結點是葉結點,直接刪除,並讓其父結點指標指向為null;

要刪除的結點只有乙個左孩子或右孩子,將父結點的指標指向要刪除結點的孩子,刪除要刪除的結點

要刪除的結點有左孩子和右孩子,用另一結點替代被刪除結點,替代的結點可以是要刪除結點左子樹的最大值右子樹的最小值

bintree delete

(elementype x,bintree bst)

else

//被刪除結點有乙個或無子結點

return tmp;

}

二叉搜尋樹 二叉搜尋樹的刪除操作

如圖刪除 7,4,2直接刪除接可以 如圖 刪除6把7拉上去 如圖 刪除3 4沒有左孩子直接返回4 所以最後的結果只是4覆蓋3 上 class solution if key root.val else if key root.val else else if root.right null else...

二叉搜尋樹常用操作函式

二叉搜尋樹常用的一些操作,如插入,刪除,尋找最大最小節點,前序中序後序遍歷等 typedef int itemtype typedef struct binnode node,pnode,tree 插入節點 void insert tree t,const itemtype x else if x ...

二叉搜尋樹的操作

一 二叉搜尋樹的概念 1.二叉搜尋樹又稱二叉排序樹,它或者是一棵空樹,或者是具有以下性質的二叉樹 1 若它的左子樹不為空,則左子樹上所有節點的值都小於根節點的值 2 若它的右子樹不為空,則右子樹上所有節點的值都大於根節點的值 3 它的左右子樹也分別為二叉搜尋樹 給定值的比較次數等於給定值節點在二叉排...