画了几张图来方便理解以下双向链表是怎么实现的。
线的顺序:1.链表的上节指向node的上节,2.node给到链表的上节3.node给到链表的下节的下节
这个就是模拟添加三个元素时的运行过程,该过程由first记录;
这是代码:
public class SxtLinkedList03 {
private Node first;
private Node last;
private int size;
public void add(Object obj) {
Node node = new Node(obj);
if(first==null){
// node.previous = null;
// node.next = null;
first = node;
last = node;
}else{
node.previous = last;
node.next = null;
last.next = node;
last = node;
}
size++;
}
public static void main(String[] args) {
lianxi5 list = new lianxi5();
list.add("a");
list.add("b");
list.add("c");
System.out.println(list.toString());
}
}
class Node {
Node previous; //上一个节点
Node next; //下一个节点
Object element; //元素数据
int kkk;
public Node(Node previous, Node next, Object element) {
super();
this.previous = previous;
this.next = next;
this.element = element;
}
public Node(Object element) {
super();
this.element = element;
}
}