![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
qq_35075909
这个作者很懒,什么都没留下…
展开
-
深入理解二叉查找树、B树和B+树
文章目录一、二叉查找树二、B树三、B+树一、二叉查找树二叉查找树,树中的任何节点的值大于它的左孩子,且小于它的右孩子。 任意节点的左、右子树也分别为二叉搜索树。它的搜索时间复杂度为o(logn)。但是在二叉查找树中,图下这种情况想要搜索值为3的节点,效率非常低。为了解决二叉查找树的不平衡问题,2-3树孕育而生,2-3树能够很好的实现树的平衡。2-3树每个节点都包含1个元素和2个孩子(...原创 2019-06-13 11:24:43 · 1951 阅读 · 0 评论 -
深入理解hashmap
文章目录一、hashmap是什么?二、hashmap的数据结构是什么样子的?三、hashmap的成员变量有哪些?四、HashMap中的hash算法4.1 hash算法常见面试题五、哈希冲突解决hash冲突的办法:六、HashMap,HashTable和HashSet的区别一、hashmap是什么?哈希表是一种以键-值(key-value)映射存储数据的结构,是一个散列表,我们只要输入待查找的...原创 2019-06-01 17:36:14 · 271 阅读 · 0 评论 -
hashset如何实现存储的元素不重复?
前几天去面试,面试官先是问了我hsahmap的底层实现,然后又问了hashmap和hashset的区别,紧接着问到hashset怎么做到的不存储重复数值,我没有答上来。回来之后查了一下相关的资料。hashset为什么不能存储相同的元素呢,这要从它添加元素的源码开始说起。hashset的add()方法:public boolean add(E e) { return map.put(e...原创 2019-06-22 20:44:05 · 639 阅读 · 1 评论 -
单向链表和双向链表、LinkedList,ArrayList,vector
一、单向链表和双向链表的区别单链表是当前节点只包含下一个节点的信息。插入和删除节点都需要遍历链表才能确认要插入或者删除的节点的位置。不能随机查找,必须从第一个开始遍历,相对数组而言查找效率低。因为插入节点不需要对插入节点后面的节点进行移动(数组需要移动),相比数组和双向链表,单链表对数据的插入操作执行的比较快。(因为单链表的单向特性,算法题中一般设置为两个指针,一快一慢同时向前移动)双向链表是...原创 2019-07-24 11:00:06 · 2015 阅读 · 0 评论