【问题标题】:Losing parts in Link List in C在 C 中的链接列表中丢失部分
【发布时间】:2011-04-08 18:27:45
【问题描述】:

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

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

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

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

这是断开和连接列表的正确方法吗?没有任何损失..

【问题讨论】:

  • 我会推荐写测试调试的编程方法。
  • @Horus:我推荐“了解你在做什么”-write-test-debug 编程方法。如果不了解,您将永远无法编写足够紧凑的测试套件来捕捉边缘情况甚至大多数“正常”情况。
  • 但是对于这样的事情,它应该是很短的一段代码。具有这种复杂程度的代码应该可以很快被破解,并且在所显示的编程级别上获得的经验是巨大的。做比问更好地学习算法。
  • 是的,很可能必须先弄清楚我在做什么

标签: c linked-list


【解决方案1】:

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

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

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

【讨论】:

  • 5.从单项列表中删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多