814850963 发表于 2017-2-13 15:02:14

关于数据结构和算法第22课代码的问题

22课小甲鱼老师讲了双向链表的实践,前面的链表的创建听明白了但是后面字母的移动老师没有细讲,有点蒙。求大神解释下。
代码已经截图。

greenturtle 发表于 2017-4-19 15:42:00

本帖最后由 greenturtle 于 2017-4-19 16:19 编辑

呃,好吧,我又看了一下视频,更正一下。用do-while循环是为了先把头结点跳过去。第二个if语句是错的,没法正确运行。
我觉得应该改成:
if(i<0)
    {
      (*L)=(*L)->next;        //先跳过头结点。
        i-=1;                                //下面的判断条件想用--i,并且考虑到最后打印的时候用的是*L=*L->next,所以这里使i变为正且绝对值增大1,相当于要打印
      i=-i;                        //节点的上一个结点。这样在使用*L=*L->next语句后就可以打印需要打印的节点了。
      do
      {
            (*L)=(*L)->prior;
      }while(--i);
    }

greenturtle 发表于 2017-4-19 15:43:08

甲鱼哥当时在视频里只演示了正数的情况,如果再演示个复数就GG了。
页: [1]
查看完整版本: 关于数据结构和算法第22课代码的问题