package LinkedList;
public class LinkedList01 {
@SuppressWarnings({"all"})
public static void main(String[] args) {
Node jack = new Node("jack");
Node tom = new Node("tom");
Node zkr = new Node("zkr");
//连接三个节点形成双向链表
//顺序
jack.next = tom;
tom.next = zkr;
//逆序
zkr.pre = tom;
tom.pre = jack;
//头尾确定
Node first = jack;
Node last = zkr;
//从头到尾遍历
while (true){
if (first == null){
break;
}
System.out.println(first);
first = first.next;
}
first = jack;//重新指向开始
//从尾到头遍历
while (true){
if (last == null){
break;
}
System.out.println(last);
last = last.pre;
}
last = zkr;//重新指向最后
//链表的添加删除数据
//添加
Node lily = new Node("lily");
lily.next = zkr;
lily.pre = tom;
zkr.pre = lily;
tom.next = lily;
//从头到尾遍历
while (true){
if (first == null){
break;
}
System.out.println(first);
first = first.next;
}
}
}
class Node{
public Object item;//存放数据
public Node next;//指向下一个
public Node pre;//指向前一个
public Node(Object name) {
this.item = name;
}
@Override
public String toString() {
return "name=" + item;
}
}
双向链表模拟
最新推荐文章于 2024-10-12 13:59:20 发布