c - 在 C 中的链表中丢失部分

标签 c linked-list

我正在尝试制作一个链接列表,但我在链接中间部分的概念上遇到了麻烦,我现在只是在做一些伪代码,实际上还没有编写任何代码。

(struct pointers) *current, *ahead, *behind, *begin;

(behind)-->(current)-->(ahead) //This is what I want to do

behind->next = current;
current->next = ahead;

这是打破和连接列表的正确方法吗?不丢失任何东西..

最佳答案

您的内容看起来正确但不完整。编程的一个不成文规则是,你不能第一次就正确地编写一个链表实现。您需要处理四种情况:

  1. 插入一个空列表
  2. 插入一个非空列表
  3. 从列表中删除第一个元素
  4. 从列表中删除任何其他元素

还有双向链表,其中每个元素都有一个指向前一个元素和下一个元素的指针。这使得在不遍历列表的情况下更容易处理诸如删除随机元素之类的事情,但要做到正确可能会更加棘手。

关于c - 在 C 中的链表中丢失部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599298/

相关文章:

c - 错误: implicit declaration of function 'g_slist_free_full'

c - 想知道如何通过 win32 应用程序中的程序在文件上写入任何内容

c - 在 C 中修改链表项的正确方法

java - 反向单链表 - 代码改进

c++ - 如何使用析构函数清除链表内存,而不会出现 valgrind 错误? [更新 : Operator Overload help]

c - c. 段错误(核心转储)字符** argv[]

c - 具有多个命令的 Shell 和作业

c - 如何在现代系统上测试缓冲区溢出?

c++ - 如何清除c中的内存

data-structures - 双向链表的实际使用