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

循环双链表类的深拷贝有关问题

2012-01-12 
循环双链表类的深拷贝问题以下循环双链表类的深拷贝构造方法有什么错误??如何改正?public CirDoublyLinked

循环双链表类的深拷贝问题
以下循环双链表类的深拷贝构造方法有什么错误??如何改正? 

public CirDoublyLinkedList(CirDoublyLinkedList<T> list) 

this(); 
DLinkNode<T> p=list.head.next; 
DLinkNode<T> rear=this.head; 
While(p!=list.head){ 
rear.next=new DLinkNode<T>(p.data,rear,this.head); 
rear=rea.next; 
p=p.next; 

}} 
代码 看不懂啥意思,麻烦大虾们指点!谢!


[解决办法]
你这个应该不是双向链表吧
循环链表的话
你传进来的list也许是循环链表,但是你拷贝没有做到循环
在while循环外面应该还要加一句rear.next = this.head
暂时还没看出其他问题
[解决办法]
同意上面的 呵呵
[解决办法]
先顶一下,一会再说研究的问题,,,,
[解决办法]
帮顶~~~~~~
[解决办法]
初略看了下,问题应该出在这句:
rear.next=new DLinkNode<T>(p.data,rear,this.head);
新的结点构造应该是这样new DLinkNode<T>(data, preNode, nextNode),即第二个参数是此结点的上一个结点,第三个参数是此结点的下一个结点。
而这句代码里preNode是对的,但nextNode一直指向this.head,当然形成不了双向循环列表了,形成的是一个反向循环,正向都指向head的列表
[解决办法]
帮顶一个
[解决办法]
不明白lz你画个双链表的图,用图画下它的复制,删除之类的过程,就知道代码是什么意思

热点排行