双向链表插入方法实现 - 正在搜索的节点

时间:2017-05-11 14:18:27

标签: c++ data-structures linked-list

我正在审核数据结构并使用this book。插入节点时,必须遍历列表。但是在实现双向链表DS的插入操作时,我不明白formControlName="formControls.name"如何等于k

position

我错过了什么?或者这是一个错字?

提前致谢!

以下是完整的方法实现:

while ((k < position - 1) && temp->next!=NULL) {
    temp = temp->next;
    k++;
}


if (k!=position) {   <----------------- this will true all the time?!
    printf("Desired position does not exist\n");
}

1 个答案:

答案 0 :(得分:1)

我认为你不会错过任何东西 - k!=position在代码的这一点上永远都是真的; k!=position true的唯一机会是position==1,但在这种情况下,函数会在到达if之前返回。 检查应该是if(temp==NULL)

还有一些其他问题让我觉得作者没有测试(实际上甚至没有编译)代码:

temp->newNode->prev=newNode;  // will this compile? I don't think that there's a member named `newNode`.

如果*head指向NULL,代码会崩溃,但会传递position > 1;