浏览 1835 次
锁定老帖子 主题:图解双链表成链过程
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-28
最后修改:2011-09-28
以java.util.LinkedList源码结合本人用XP自带的简陋的画图程序分析链表成链的过程如下:
1、一个空的双链表其实是个环形的链,如下图: public LinkedList() { header.next = header.previous = header; } 2、添加第一个元素的过程如下: public boolean add(E o) { addBefore(o, header); return true; } private Entry<E> addBefore(E o, Entry<E> e) { Entry<E> newEntry = new Entry<E>(o, e, e.previous);//① newEntry.previous.next = newEntry; //③ newEntry.next.previous = newEntry; //② size++; modCount++; return newEntry; } 注意看①处,意思是说新增节点的后驱是header,前驱是header的前驱(header的前驱始终会指向链表的最后一个元素) 3、添加第二个元素如下和添加第一个类似: 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |