/**
* @version 1.0
* function:
* @author:阿卜杜赛麦提
* @date:2023/1/5 2:04
*/
@SuppressWarnings({"all"})
public class LinkdList01 {
public static void main(String[] args) {
Node ali = new Node("阿里");
Node asan = new Node("阿三");
Node zhangsna = new Node("张二");
Node hello = new Node("hello");
Node jeck = new Node("jeck");
//构建双向链表
ali.next = asan;
asan.next = zhangsna;
zhangsna.next = hello;
hello.next = jeck;
jeck.previous = hello;
hello.previous = zhangsna;
zhangsna.previous = asan;
asan.previous = ali;
//构建头节点和尾节点
Node headNode = ali; //头节点指向ali
Node tailNode = jeck; //尾节点指向jeck;
//遍历输出
System.out.println("=========双向链表正向遍历============");
while (true){
if (headNode==null){
break;
}
System.out.println(headNode);
headNode=headNode.next;
}
System.out.println("==============双向链表反向遍历===============");
while (true){
if (tailNode==null){
break;
}
System.out.println(tailNode);
tailNode=tailNode.previous;
}
//重置一下元素
headNode = ali; //头节点指向ali
tailNode = jeck; //尾节点指向jeck;
//添加元素
Node lisi = new Node("李四");
asan.next=lisi;
lisi.next=zhangsna;
zhangsna.previous=lisi;
lisi.previous=asan;
System.out.println("=========双向链表正向遍历============");
while (true){
if (headNode==null){
break;
}
System.out.println(headNode);
headNode=headNode.next;
}
System.out.println("==============双向链表反向遍历===============");
while (true){
if (tailNode==null){
break;
}
System.out.println(tailNode);
tailNode=tailNode.previous;
}
}
}
class Node {
public Node next; //下一个节点
public Node previous; //前一个结点
public Object name; //真正存放的数据
public Node(Object name) {
this.name = name;
}
@Override
public String toString() {
return "名称\t:" + name;
}
}
java实现双向链表(数据结构双向链表)
最新推荐文章于 2023-06-04 16:43:53 发布