redis中的链表恐怕是最简单的数据结构了,redis链表中总共有3个数据结构: listNode: 从这个上面可以看出,redis的链表是双向链表 list: 值得研究一下的是,redis为链表实现了迭代器,迭代器是本文的第三个数据结构: 迭代器本身就是一种设计模式,可见C语言一样可以利用各种设计 ...
分类:
其他好文 时间:
2017-09-05 19:02:39
阅读次数:
154
1. List集合下常用的集合(ArrayList,LinkedList,Vector); JVM垃圾回收GC,Java中采取了可达性分析法,标记所有从根节点开始的可达对象,未被标记的对象就是未被引用,但是没有引用的不一定会被作为垃圾清理,因为有些是可复活对象,这里不作说明,除以上情况以外的会被作为 ...
分类:
其他好文 时间:
2017-09-04 15:06:27
阅读次数:
145
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路:迭代版本: 核心思想是中序遍历,头结点需要单独设置flag变量进行初始化。 if(!s.empty()){ if(flag == 1){ head = s.top(); ...
分类:
其他好文 时间:
2017-09-04 13:13:51
阅读次数:
213
1. LinkedList的定义 1.1 继承于AbstractSequentialList的双向链表,可以被当作堆栈、队列或双端队列进行操作 1.2 有序,非线程安全的双向链表,默认使用尾部插入法 1.3 适用于频繁新增或删除场景,频繁访问场景请选用ArrayList 1.4 插入和删除时间复杂为 ...
分类:
其他好文 时间:
2017-09-03 22:17:43
阅读次数:
199
有了单向链表的基础,双向链表的实现就容易多了。 双向链表的一般情况: 增加节点: 删除节点: 双向链表的Java实现: 测试代码: ...
分类:
编程语言 时间:
2017-09-03 10:06:28
阅读次数:
173
Java中LinkedList的部分源码(本文针对1.7的源码) LinkedList的基本结构 jdk1.7之后,node节点取代了 entry ,带来的变化是,将1.6中的环形结构优化为了直线型链表结构,从双向循环链表变成了双向链表 在LinkedList中,我们把链子的“环”叫做“节点”,每个 ...
分类:
编程语言 时间:
2017-09-02 13:01:12
阅读次数:
337
Java中最简单的LRU算法实现,就是利用 LinkedHashMap,覆写其中的removeEldestEntry(Map.Entry)方法即可 如果你去看LinkedHashMap的源码可知,LRU算法是通过双向链表来实现,当某个位置被命中,通过调整链表的指向将该位置调整到头位置,新加入的内容直 ...
分类:
编程语言 时间:
2017-09-01 22:18:03
阅读次数:
275
一、题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 二、解法 ...
分类:
其他好文 时间:
2017-08-30 15:30:17
阅读次数:
142
Description 最近小M买了一个移动硬盘来储存自己电脑里不常用的文件。但是他把这些文件一股脑丢进移动硬盘后,觉得这些文件似乎没有被很好地归类,这样以后找起来岂不是会非常麻烦? 小M最终决定要把这些文件好好归类,把同一类地移动到一起。所以现在小M有了这几种操作: 1 u 表示把编号为u的文件放 ...
分类:
移动开发 时间:
2017-08-29 16:50:40
阅读次数:
162
我们已经知道B+树的组织结构及不同层之间是如何关联的了。 现在我们模拟一个B+树是如何从小到大,从无到有,从简到繁的过程。 首先我们来做一些假设: 1,每个页面包括内节点和叶子节点最多可以插入三条记录,插入第四条的时候,就会导致分裂。 2,插入的数据是键值对,但是我们只关注键,值可以不用关注,就简单 ...
分类:
数据库 时间:
2017-08-27 10:11:30
阅读次数:
187