二叉搜尋樹也稱二叉排序樹或二叉查詢樹;
二叉搜尋樹:一顆二叉樹可以為空;如果不為空,滿足以下性質:
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 是指一棵空樹或者具有下列性質的二叉樹 若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值 若任意節點的右子...