其他链表
双向链表
扩展单链表的节点结构,使得通过一个节点的引用,不但能够访问其后续节点,也可以访问其前驱节点
双向链表节点结构(前驱指针域、数据域、后续指针域)
Java中的LinkedList底层使用的就是双向链表
循环链表
在一个循环链表中,首节点和末节点被连接在一起。单向链表和双向链表都可以实现
LinkedList添加元素实现
创建节点类
public class LinkedNode {
LinkedNode prev;
Object data;
LinkedNode next;
public LinkedNode() {
}
public LinkedNode(LinkedNode prev, Object data, LinkedNode next) {
this.prev = prev;
this.data = data;
this.next = next;
}
}
实现LinkedList添加元素方法
public class MyLinkedList implements List{
//元素个数
private int size;
//记录链表的头节点引用
LinkedNode first;
//记录链表的尾节点引用
LinkedNode last;
//添加元素
public void add(Object e) {
//尾节点引用会改变
LinkedNode l = last;
//创建新节点,它的前驱节点是原先的尾节点,后续节点为null
LinkedNode newNode = new LinkedNode(l,e,null);
//记录尾节点引用指向新创建的节点
last = newNode;
//这里是判断一下,如果链表中没有元素,就让头节点引用也指向新创建的节点
if (first == null) {
first = newNode;
}else{
//改变原先尾节点的后续节点为新尾节点
l.next = newNode;
}
size++;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。