所有學習內容全部來自於《演算法》第四版
二叉查詢樹是符號表的一種實現。
符號表,又稱為字典,或者索引之類的。主要目的就是講乙個鍵和乙個值聯絡起來,能夠通過鍵增刪改查等操作。
符號表有二叉查詢樹、紅黑樹以及雜湊表的實現。基於這些演算法,能夠擴充套件出很多應該用。
主要實現如下方法:
key的話需要繼承於comparable。
public inte***ce symboltable,value>
介面裡面有一些方法的實現可以依賴於其它方法。子類不需要進一步實現,如下:
所有的實現都用的遞迴,如下:
public class bst,value> extends abstractsymboltable
private class node
@override
public string tostring()
}private node root;
@override
public string tostring()
private string tostring(node node)
public int size()
private int size(node node)
public value get(key key)
private value get(node node,key key)
public void put(key key,value value)
private node put(node node,key key,value value)
public void delete(key key)
public node delete(node node,key key)
node.n=size(node.left)+size(node.right)+1;
return node;
}public key max()
private node max(node node)
public key min()
private node min(node node)
public boolean contains(key key)
public key floor(key key)
private node floor(node node,key key)
public key ceiling(key key)
private node ceiling(node node,key key)
public int rank(key key)
public int rank(node node,key key)
public key select(int k)
public void deletemax()
private node deletemax(node node)
public void deletemin()
private node deletemin(node node)
public node select(node node,int k)
public iterablekeys(key lo, key hi)
}
符號表 二叉查詢樹
實現了二叉查詢樹的 插入,查詢,獲取最大 最小值,刪除最大 最小值,按照給定的鍵值刪除鍵值,向上取整等方法。如下 標頭檔案如下 bst.h created on 2014年6月28日 author zhongchao ifndef bst define bst include include inc...
基於二叉查詢樹的符號表
1.資料表示 我們巢狀定義乙個私有node類來表示二叉查詢樹上的乙個結點。每個結點都含有乙個鍵,乙個值,一條左鏈結,一條右鏈結。左鏈結指向一棵由小於該結點的所有鍵組成的二叉查詢樹,右鏈結指向一棵由大於該結點的所有鍵組成的二叉查詢樹。變數n給出以該結點為根的子樹的結點總數。這樣有 size x siz...
基於二叉查詢樹的符號表(java)
package bst public class bstcomparable value public intsize private intsize node x public value get key key private value get node x,key key public vo...