java数据结构--实现双链表
classNode{//声明节点类publicObjectdate;//保存数据元素publicNodeprev,next;//prev节点前驱,next节点后继。pub...
class Node { // 声明节点类
public Object date; // 保存数据元素
public Node prev, next; // prev节点前驱,next节点后继。
public Node(Object date, Node p, Node n) {
this.date = date;
this.next = n;
this.prev = p;
}
public Node() {
this(null, null, null);
}
}
public class MyLinList implements MyList {
Node root = null; //声明根节点
int size; //保存双链表的长度
public MyLinList() { // 构造方法
root = new Node();
size = 0;
}
public void insert(int i, Object e) { // 双链表的插入
Node newNode=new Node(e,null,null);
if(root==null)
root=newNode;
else{
if (i >= 0||i<size) {
Node p = this.root;
for (int j = 0; p.next != null && j <=i; j++)
p = p.next;
Node tem = new Node(e, p, p.next);
p.next = tem; //我不明白为什么这一句和下一句不能调换
p.next.prev = tem;
size++;
}
}
}
public void print() { // 打印双链表
Node p = this.root;
while (p.next != null) {
System.out.print(p.date + " ");
p = p.next;
}
} 展开
public Object date; // 保存数据元素
public Node prev, next; // prev节点前驱,next节点后继。
public Node(Object date, Node p, Node n) {
this.date = date;
this.next = n;
this.prev = p;
}
public Node() {
this(null, null, null);
}
}
public class MyLinList implements MyList {
Node root = null; //声明根节点
int size; //保存双链表的长度
public MyLinList() { // 构造方法
root = new Node();
size = 0;
}
public void insert(int i, Object e) { // 双链表的插入
Node newNode=new Node(e,null,null);
if(root==null)
root=newNode;
else{
if (i >= 0||i<size) {
Node p = this.root;
for (int j = 0; p.next != null && j <=i; j++)
p = p.next;
Node tem = new Node(e, p, p.next);
p.next = tem; //我不明白为什么这一句和下一句不能调换
p.next.prev = tem;
size++;
}
}
}
public void print() { // 打印双链表
Node p = this.root;
while (p.next != null) {
System.out.print(p.date + " ");
p = p.next;
}
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询