自己动手实现java数据结构(六)二叉搜索树
发布时间:2021-04-02 08:24:25 所属栏目:站长百科 来源:网络整理
导读:副标题#e# 1.二叉搜索树介绍 前面我们已经介绍过了向量和链表。有序向量可以以二分查找的方式高效的查找特定元素,而缺点是插入删除的效率较低(需要整体移动内部元素);链表的优点在于插入,删除元素时效率较高,但由于不支持随机访问,特定元素的查找效率
|
当返回的相对位置为Current时,代表找到了目标节点,直接返回value;反之代表目标节点不存在,返回null。 V get(K key) {
targetEntryNode.target.value;
}
}
3.7?二叉搜索树其它接口实现 containsKey(K key) {
return (get(key) != );
}
@Override
containsValue(V value) {
:::寻找到第一个节点
EntryNode<K,V> entryNode = getFirstNode();
:::从第一个节点开始,遍历整颗二叉搜索树
while(entryNode != if(Objects.equals(entryNode.value,value)){
:::当前节点value匹配,返回true
true:::指向下一个直接后继节点
entryNode = getSuccessor(entryNode);
}
}
:::遍历整颗树之后,还未匹配,返回false
false;
}
@Override
size() {
.size;
}
@Override
isEmpty() {
return (this.size == 0 clear() {
this.size = 0;
String toString(){
Iterator<Map.EntryNode<K,V>> iterator = .iterator();
:::空容器
if(!iterator.hasNext()){
return "[]":::容器起始使用"["
StringBuilder s = new StringBuilder("[");
:::反复迭代
while(:::获得迭代的当前元素
Map.EntryNode<K,V> data = iterator.next();
:::判断当前元素是否是最后一个元素
iterator.hasNext()){
:::是最后一个元素,用"]"收尾
s.append(data).append("]");
:::返回 拼接完毕的字符串
s.toString();
}:::不是最后一个元素
:::使用","分割,拼接到后面
s.append(data).append(",");
}
}
}
@Override
public Iterator<Map.EntryNode<K,1)"> iterator() {
new Itr();
}
4.二叉搜索树迭代器1. 二叉搜索树从最左节点开始,以中序遍历的方式遍历整颗树 2. 在迭代器初始化时,迭代器指向最小的节点(也就是最左节点) (编辑:网站开发网_盐城站长网 ) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

