日期:2014-05-20  浏览次数:20740 次

Java 双向链表的实现
最好在下面代码的基础上加入代码来实现,不要删除其中的代码
我是新手,加下列代码中没有的知识点我看不懂!谢谢!  
public   class   Ktlx5  
{  
public   static   void   main(String[]   s)  
{  
Link2   n   =   new   Link2();  
for(int   i   =   1;   i   <   100;   i++)  
{  
n.addNode(new   Node2(i));  
}  
n.print();  
n.insertBefore(new   Node2(25),   n.setNode(15));  
}  
}  

class   Link2  
{  
private   Node2   head   =   null;  
private   Node2   end   =   null;  
private   Node2   current   =   null;  
public   void   addNode(Node2   n)  
{  
if(head   ==   null)  
{  
head   =   end   =   n;  
}  
else  
{  
end.next   =   n;  
end   =   end.next;  
}  
}  
public   void   insertBefore(Node2   newnode,   Node2   node)  
//在前面加  
{  
newnode.next   =   node;  
newnode.before   =   node.before;  
node.before   =   newnode;  
node.before.before.next   =   newnode;  
}  
public   void   insertAfter(Node2   newnode,   Node2   node)  
//在后面加  
{  
newnode.before   =   node;  
newnode.next   =   node.next;  
node.next   =   newnode;  
node.next.next.before   =   newnode;  
}  
public   void   deleteNode(Node2   node)   //删除  
{  
node.before.next   =   node.next;  
node.next.before   =   node.before;  
node.next   =   null;  
node.before   =   null;  
}  
public   void   print()  
{  
current   =   head;  
while(current   !=   null)  
{  
System.out.println(current.key);  
current   =   current.next;  
}  
}  
public   Node2   setNode(int   key)  
{  
current   =   head;  
while(current   ==   null   &&   current.key   !=   key)  
{  
current   =   current.next;  
}  
return   current;  
}  
}  

class   Node2  
{  
public   int   key   =   0;  
public   Node2   next   =   null;   //后一个  
public   Node2   before   =   null;   //前一个  
public   Node2(int   key)  
{  
this.key   =   key;  
}  
}  
最好在上面代码的基础上加入代码来实现,不要删除其中的代码

------解决方案--------------------
刚开始学就溜这样的作业呀?嗬嗬。
你的Node写得没问题,重要的是Node与Node之间的那些线,得连好了,最简单的办法呀,就是画图,一步步的画出来,哪里切断,哪里接上,一目了然。

加油呀。
------解决方案--------------------
可以参考JDK里面LinkedLis,那个就是个Doublly Linked List。
------解决方案--------------------
java集合框架已提供了链表
------解决方案--------------------