資料結構/查詢方法
阿新 • • 發佈:2018-11-19
1 順序查詢
2 二分查詢需要資料有序
3 查詢樹
3.1 二叉查詢樹
3.1.1 定義和性質
所謂二叉查詢樹(binary search tree , BST)或者是一棵空樹;或者是具有以下性質的二叉樹:
⑴ 若它的左子樹不空,則其左子樹中所有結點的值不大於根結點的值;
⑵ 若它的右子樹不空,則其右子樹中所有結點的值不小於根結點的值;
⑶ 它的左、右子樹都是二叉查詢樹
總結:左小右大
3.1.2 二叉查詢樹中查詢(遞迴)
3.1.3 二叉查詢樹中查詢(非遞迴)
3.1.3 最小值(最左邊)
public Node min(BinTreeNode v){
if (v!=null)
while (v.hasLChild()) v = v.getLChild();
return v;
}
3.1.4 最大值(最右邊)
public Node min(BinTreeNode v){
if (v!=null)
while (v.hasRChild()) v = v.getRChild();
return v;
}
3.1.5 前驅
和後續的相反
3.1.6 後續
在二叉查詢樹中確定某個結點v 的後續結點的演算法思想如下:如果結點v 有右子樹,那麼v 的後續結點是v 的右子樹中關鍵字最小的
3.2 AVL樹
二叉查詢樹高度直接影響到操作實現的效能,而在某些特殊的情況下二叉查詢樹會退化為一個單鏈表,如插入的結點序列本身就有序的情況下,此時各操作的效率會下降到Ο(n)。二叉查詢樹的高度越低越好,從樹的形態來看,也就是使樹儘可能平衡。
3.3 B-樹
4 雜湊