我正在尝试制作一个链接列表,但我在链接中间部分的概念上遇到了麻烦,我现在只是在做一些伪代码,实际上还没有编写任何代码。
(struct pointers) *current, *ahead, *behind, *begin;
(behind)-->(current)-->(ahead) //This is what I want to do
behind->next = current;
current->next = ahead;
这是打破和连接列表的正确方法吗?不丢失任何东西..
最佳答案
您的内容看起来正确但不完整。编程的一个不成文规则是,你不能第一次就正确地编写一个链表实现。您需要处理四种情况:
- 插入一个空列表
- 插入一个非空列表
- 从列表中删除第一个元素
- 从列表中删除任何其他元素
还有双向链表,其中每个元素都有一个指向前一个元素和下一个元素的指针。这使得在不遍历列表的情况下更容易处理诸如删除随机元素之类的事情,但要做到正确可能会更加棘手。
关于c - 在 C 中的链表中丢失部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599298/