1 二叉排序树/二叉查找树/Binary Sort Tree + 1种对排序和查找都很有用的特殊二叉树 + 叉排序树的弊端的解决方案:平衡二叉树 + 二叉排序树必须满足的3条性质(或是具有如下特征的二叉树) + 若它的左子树不为空,则:左子树上所有结点的值< 它根结点的值 + 若它的右子树不为空,则 ...
分类:
编程语言 时间:
2020-03-15 13:28:13
阅读次数:
87
1:HashMap 的数据结构? 答:HashMap底层是数组 + 链表 + 红黑树的数据结构,数组的主要作用是方便快速查找,时间复杂读是O(1), 默认大小是16,数组的下标的通过key 的hashcode 计算出来的,数组元素叫做Node节点,当多个 key的 hashcode 一致,但 key ...
分类:
其他好文 时间:
2020-03-15 10:08:44
阅读次数:
60
以下内容均摘抄自他人博客,正确性有待考察,请以质疑的态度阅读学习,若有错误请留言指正 stl用过哪些容器? Vector:动态数组 List:双向链表 Deque:与vector类似,但支持双端操作。 Set:关联容器 集合,底层红黑树实现。 Map:关联容器 键值对,底层红黑树实现。 Stack: ...
分类:
其他好文 时间:
2020-03-14 19:59:21
阅读次数:
59
简述: map是stl的一种关联式容器,提供一对一的数据存储结构,第一个成为关键字,第二个为该关键字的值,在map中关键字只能出现一次。map的内部为一棵红黑树,具有自动排序功能,map会根据key值的大小进行非降序排序,当key值类型为string时为字典序。在map中查找插入删除的时间复杂度都是 ...
分类:
其他好文 时间:
2020-03-12 14:16:28
阅读次数:
79
HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结 ...
分类:
其他好文 时间:
2020-03-11 10:27:31
阅读次数:
58
图解红黑树 一、红黑树的五条规则 红黑树除了符合二叉搜索树的基本规则外,还添加了以下特性: 规则1:节点是红色或黑色的; 规则2:根节点是黑色的; 规则3:每个叶子节点都是黑色的空节点(NIL节点); 规则4:每个红色节点的两个子节点都是黑色的(从每个叶子到根的所有路径上不可能有两个连续的红色节点) ...
分类:
其他好文 时间:
2020-03-10 19:48:14
阅读次数:
64
一、为什么需要HashMap? 在我们写程序的时候经常会遇到数据检索等操作,对于几百个数据的小程序而言,数据的存储方式或是检索策略没有太大影响,但对于大数据,效率就会差很远。 1、线性检索: 线性检索是最为直白的方法,把所有数据都遍历一遍,然后找到你所需要的数据。其对应的数据结构就是数组,链表等线性 ...
分类:
其他好文 时间:
2020-03-10 11:44:34
阅读次数:
81
1 shell命令:如何查询内存大小 文件大小和端口有没有被占用等 awk获取行列内容 2 文件的静态链接和动态链接的过程 3 文件的编译原理 4 cs模型和bs模型等编程模型 5 C++11的新标准特性 6 epoll的内部实现 双向arry+红黑树? 7 线程的资源 存放在哪里 栈指针? 8 c ...
分类:
其他好文 时间:
2020-03-10 11:35:26
阅读次数:
46
概念理解 selector与epoll是多路复用的函数。我认为多路复用是针对bio而言,指的是通过单线程来追踪管理多个socket对象。传统的bio中,在socket的accept与read两个阶段都会造成阻塞,那么就无法处理并发问题,即仅一个socket对象就已经占用了IO对象,没有余力解决其他线 ...
分类:
其他好文 时间:
2020-03-08 13:42:13
阅读次数:
108
起因: 这个问题是在面试某公司的时候面试官提的问题,当时没回答上来。归根到底还是因为自己复习基础的时候还不够仔细,也缺乏思考。 首先 我觉得需要确认一下,是不是随便什么情况下只要满足了链表长度为8就转红黑树呢?答案自然不是,为什么不是,看代码: /** * Replaces all linked n ...
分类:
其他好文 时间:
2020-03-08 09:47:02
阅读次数:
134