要求:
- 建立一个空表。
- 在第i个位置插入新的元素x。
- 删除第i个位置上的元素。
- 取第i个位置上的元素。
- 返回元素x第一次出现在双向循环链表中的位置号。
- 求双向循环链表的长度,即元素个数。
- 输出双向循环链表中所有的元素值。
- 实现双向循环链表的就地逆置。
基本思路
1.建表
2.插入
3.删除
4.就地逆置
节点类:
package keshe;
public class DuLNode {
public Object data;
public DuLNode prior;
public DuLNode next;
public DuLNode() {
this(null,null,null);
}
public DuLNode(Object data) {
this(data,null,null);
}
public DuLNode(Object data,DuLNode prior,DuLNode next) {
this.data=data;
this.prior=prior;
this.next=next;
}
}
方法:
package keshe;
import java.util.Scanner;
public class DuLinkList{
public DuLNode head;
public DuLinkList() {
//初始化
head=new DuLNode();
head.next=head;
head.prior=head;
}
public DuLinkList(int n)throws Exception{
//尾插法
this();
Scanner sc=new Scanner(System.in);
for(int i=0;i<n;i++) {
insert(n,sc.next(