java简单模拟双向链表
模拟一个简单的双向链表
public class Demo {
public static void main(String[] args) {
// 创建三个节点
Node item1 = new Node("item1");
Node item2 = new Node("item2");
Node item3 = new Node("item3");
// 链接三个节点,形成双向链表
// item1 -> item2 -> item3
item1.next = item2;
item2.next = item3;
// item3 -> item2 -> item1
item3.pre = item2;
item2.pre = item1;
// 定义first和last节点分别指向
Node first = item1;
Node last = item3;
// 双向链表插入数据
Node newItem = new Node("newItem");
// 在item1和item2之间插入
item1.next = newItem;
newItem.pre = item1;
newItem.next = item2;
item2.pre = newItem;
System.out.println("从头到尾遍历");
// 从头到尾遍历
while (true) {
if (first == null) {
break;
}
// 打印头节点
System.out.println(first);
// 移动指向
first = first.next;
}
System.out.println("从尾到头遍历");
// 从尾到头遍历
while (true) {
if (last == null) {
break;
}
// 打印尾节点
System.out.println(last);
// 移动指向
last = last.pre;
}
}
}
// 定义一个Node类,node对象表示双向链表的一个节点
class Node {
public Object item;
public Node next;
public Node pre;
public Node(Object item) {
this.item = item;
}
@Override
public String toString() {
return "Node name => " + item;
}
}
原文地址:https://www.cnblogs.com/coderDreams/p/15927238.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。