Linkedlist简介
来源:互联网 发布:linux 压缩文件命令 编辑:程序博客网 时间:2024/05/16 09:13
1、底层实现原理
LinkedList底层的数据结构是基于双向循环链表的,且头结点中不存放数据,如下:
既然是双向链表,那么必定存在一种数据结构——我们可以称之为节点,节点实例保存业务数据,前一个节点的位置信息和后一个节点位置信息,如下图所示:
2、linkedList添加数据过程:
第一步:初始化后LinkedList实例的情况:
第二步:初始化一个预添加的Entry实例(newEntry)。
Entry newEntry = newEntry(e, entry, entry.previous);
第三步:调整新加入节点和头结点(header)的前后指针。
newEntry.previous.next = newEntry;
newEntry.previous即header,newEntry.previous.next即header的next指向newEntry实例。在上图中应该是“4号线”指向newEntry。
newEntry.next.previous = newEntry;
newEntry.next即header,newEntry.next.previous即header的previous指向newEntry实例。在上图中应该是“3号线”指向newEntry。
调整后如下图所示:
图——加入第一个节点后LinkedList示意图
下面分解“添加第二个数据”的步骤:
第一步:新建节点。
图——添加第二个节点
第二步:调整新节点和头结点的前后指针信息。
图——调整前后指针信息
添加后续数据情况和上述一致,LinkedList实例是没有容量限制的。
- LinkedList简介
- Linkedlist简介
- LinkedList简介
- LinkedList简介
- LinkedList简介
- LinkedList简介
- Java LinkedList简介 源码剖析
- Java数据结构——LinkedList源码简介
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- 源码讲解knockout执行过程
- 进制转换 sdutoj1252(模拟手写栈2333333)
- android的开发工具Eclipse中模拟器横竖屏切换的快捷键是 Ctrl +F11
- P1417 烹调方案
- Mac 好用的截图标注工具
- Linkedlist简介
- 城市列表实现类
- Group Anagrams
- Android事件的处理
- Lua学习总结 (安装与使用)
- 使用 Microsoft RDC for Mac 在 Mac 和 Windows 间传文件
- log4j2
- Viewpager_fragment
- 学习是一个漫长的过程