专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > J2SE

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

发布时间:2010-06-05 05:30:48 文章来源:www.iduyao.cn 采编人员:星星草
循环双链表类的深拷贝问题
以下循环双链表类的深拷贝构造方法有什么错误??如何改正? 

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你画个双链表的图,用图画下它的复制,删除之类的过程,就知道代码是什么意思
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: