二叉查詢樹的查詢和插入和刪除操作

2022-05-03 02:12:07 字數 1034 閱讀 4832

二叉搜尋樹也稱二叉排序樹或二叉查詢樹;

二叉搜尋樹:一顆二叉樹可以為空;如果不為空,滿足以下性質:

1.非空左子樹的所有鍵值小於其根結點的鍵值。

2.非空右子樹的所有鍵值大於其根節點的鍵值。

3.左、右子樹都是二叉搜尋樹。

查詢:find

3.若兩者比較結果是相等,返回指向此結點的指標

尾遞迴

position find (elementtype x, bintree bst)

迭代函式

position iterfind (elementtype x, bintree bst)

return null;  //

查詢失敗

}

查詢的效率取決於樹的高度

查詢最大和最小元素

最大元素一定是在樹的最右分枝的端結點上,最小元素一定是在樹的最左分枝的端結點上

1.查詢最小元素的遞迴函式

position findmin (bintree bst)

2.查詢最大元素的迭代函式

position findmax (bintree bst) 

}  return

bst;

}

插入

bintree insert (elementtype x, bintree bst) 

else

return

bst;

}

刪除1.要刪除的是葉結點:直接刪除,並修改其父結點指標(置為null)

2.要刪除的結點只有乙個孩子結點:將其父結點的指標指向要刪除結點的孩子結點

3.要刪除的結點有左、右兩棵子樹:用另一結點替代被刪除結點:取右子樹的最小元素或者左子樹的最大元素(因為這兩個元素一定不是有兩個元素的結點)

bintree delete (elementtype x, bintree bst) 

else

}  return

bst;

}

二叉查詢樹 插入 刪除 查詢

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

二叉查詢樹 插入 刪除 查詢

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

二叉查詢樹的查詢 插入 刪除

二叉查詢樹 英語 binary search tree 也稱為二叉搜尋樹 有序二叉樹 ordered binary tree 或排序二叉樹 sorted binary tree 是指一棵空樹或者具有下列性質的二叉樹 若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值 若任意節點的右子...