双向链表(Java)
双向链表:也叫双链表,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。
从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。
双向链表的结构特点如下:

较单链表相比优势:
- 插入删除不需要移动元素,可以自我删除
- 可双向遍历
代码如下:
public class Doubleloop {
Doubleloop prior=this;//上一个结点
Doubleloop next=this;//下一个结点
int data;//结点数据
public Doubleloop (int data) {
this.data=data;
}
//增加结点
public void after(Doubleloop node) {
Doubleloop nextNext=next;//原来的下一个结点
this.next=node;//把新结点作为当前结点的下一个结点
node.prior=this;//把当前结点作为新结点的前一个结点
node.next=nextNext;//让原来的下一个结点作为新结点的下一个结点
nextNext.prior=node;//让原来的下一个结点的上一个结点为新结点
}
//获取下一个结点
public Doubleloop next() {
return this.next;
}
//获取上一个结点
public Doubleloop prior() {
return this.prior;
}
//获取数据
public int getdata() {
return this.data;
}
public static void main(String[] args) {
//创建结点
Doubleloop n1=new Doubleloop(1);
Doubleloop n2=new Doubleloop(2);
Doubleloop n3=new Doubleloop(3);
//让结点间产生关系
n1.after(n2);
n2.after(n3);
//查看上一个,下一个结点
System.out.println(n1.prior().getdata());
System.out.println(n1.getdata());
System.out.println(n1.next().getdata());
}
}
1140

被折叠的 条评论
为什么被折叠?



