我能夠通過簡單地使用以下數據結構來實現使用數組的Hashtable。如何使用二叉搜索樹實現散列表?
LinkedList<Item<K,V>> table[]
const int MAX_SIZE = 100
即鏈表(鏈接散列)。
現在在各種書籍中,他們說如果我們需要有序數據,我們可以用BST實現散列表。 如何在BST中同時包含密鑰和值。雖然我可以存儲兩者,就像我存儲單個數據項一樣,但密鑰給出了一個整數,它在散列函數之後就像數組的索引一樣。我如何在BST中使用密鑰?我不需要任何索引?
我能想到的是,我可以使用該功能比較兩個鍵,然後相應地進行正常插入,刪除。
EDITS:
假設我有BST從頭
class Node {
K key;
V value;
Node left;
Node right;
}
class BinarySearchTree {
Node root;
}
class Hashtable {
BinarySearchTree bst;
public void Hashtable() {
bst = new BinarySearchTree();
}
//hashfunction(K key)
//get(K Key)
//put(K key,V value)
//remove(K key)
}
如何使用映射的關鍵整數落實
insert(V value)
在BST
。
我很新的節目,但不能使用一個樹狀圖呢? http://stackoverflow.com/questions/13373854/binary-search-tree-java-implementation – spuder