关于数据结构和算法第22课代码的问题
22课小甲鱼老师讲了双向链表的实践,前面的链表的创建听明白了但是后面字母的移动老师没有细讲,有点蒙。求大神解释下。代码已经截图。 本帖最后由 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);
} 甲鱼哥当时在视频里只演示了正数的情况,如果再演示个复数就GG了。
页:
[1]