首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java 双向链表的实现,该如何解决

2012-02-25 
Java 双向链表的实现最好在下面代码的基础上加入代码来实现,不要删除其中的代码我是新手,加下列代码中没有

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集合框架已提供了链表
------解决方案--------------------


public void insertAfter(Node3 after, Node3 key) {
current.next.before = key; //没仔细看你的代码,不过我认为你这儿不对.
key.next = current.next;
current.next = key;
key.before = current;
}

热点排行