我可以使用以下数据结构,仅通过使用数组来实现Hashtable。
LinkedList<Item<K,V>> table[]
const int MAX_SIZE = 100
即一个链表数组(使用链式哈希)。
现在,在各种书籍中,他们说如果我们想要有序数据,可以使用BST实现散列表。我如何在BST中同时包含键和值?尽管我可以像存储单个数据项一样存储两者,但是键提供了一个整数,该整数在经过哈希函数后充当数组的索引。我如何在BST中使用键?我不需要任何索引吗?
我能想到的是,我可以使用函数比较两个键,然后进行正常的插入、删除。
编辑:
假设我从头开始建立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)
在二叉搜索树中。