C++ C+中的双链表+;-insertFirst与insertLast实现 中,您总是/ 需要做 pNeNeLink > PXNET= pAuth/Cuth>但是在插入式最后一个/COD> > 只有< /强> do>代码> pNeNeLink > pSime= Prase< /代码>如果列表不是空的?否则,这两种方法似乎是完全相反的 void insertFirst(double dd) //insert at front of list { Link* pNewLink = new Link(dd); if( isEmpty() ) pLast = pNewLink; else pFirst->pPrevious = pNewLink; pNewLink->pNext = pFirst; pFirst = pNewLink; } void insertLast(double dd) //insert at end of list { Link* pNewLink = new Link(dd); if( isEmpty() ) pFirst = pNewLink; else { pLast->pPrevious = pLast; pNewLink->pPrevious = pLast; } pLast = pNewLink; }

C++ C+中的双链表+;-insertFirst与insertLast实现 中,您总是/ 需要做 pNeNeLink > PXNET= pAuth/Cuth>但是在插入式最后一个/COD> > 只有< /强> do>代码> pNeNeLink > pSime= Prase< /代码>如果列表不是空的?否则,这两种方法似乎是完全相反的 void insertFirst(double dd) //insert at front of list { Link* pNewLink = new Link(dd); if( isEmpty() ) pLast = pNewLink; else pFirst->pPrevious = pNewLink; pNewLink->pNext = pFirst; pFirst = pNewLink; } void insertLast(double dd) //insert at end of list { Link* pNewLink = new Link(dd); if( isEmpty() ) pFirst = pNewLink; else { pLast->pPrevious = pLast; pNewLink->pPrevious = pLast; } pLast = pNewLink; },c++,doubly-linked-list,C++,Doubly Linked List,首先,您的实现似乎不正确,因为当列表为空时,不应在insertFirst中设置pNewLink->pNext 如果进行此修改,两种方法看起来都更像“对称” 如果插入最后一个。你没有“下一个值”,所以你没有设置它,但你有上一个值,所以你设置这个 如果你先插入,你就没有“前一个值”,所以你不设置它,但是你有下一个值,所以你设置了这个值。在我的C++中实现双链表,我不明白为什么…在编写一行代码之前,您应该使用行和框绘制插入到链表中所需的操作。那么,需要做什么就没有问题了。完成一个链表作业(假设这是家庭

首先,您的实现似乎不正确,因为当列表为空时,不应在
insertFirst
中设置
pNewLink->pNext

如果进行此修改,两种方法看起来都更像“对称”

如果插入最后一个。你没有“下一个值”,所以你没有设置它,但你有上一个值,所以你设置这个


如果你先插入,你就没有“前一个值”,所以你不设置它,但是你有下一个值,所以你设置了这个值。

在我的C++中实现双链表,我不明白为什么…在编写一行代码之前,您应该使用行和框绘制插入到链表中所需的操作。那么,需要做什么就没有问题了。完成一个链表作业(假设这是家庭作业)完全取决于首先以图形的方式进行设计,而不是试图通过编码的方式找到解决方案。我只是在编程中弄湿了脚。此代码段摘自“24小时内学习数据结构”。在这里浏览了一下之后,看起来这些书甚至不推荐用于预览(而且不可靠的代码似乎会浪费我的时间)。谢谢你的提示!