首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有序链表无序

有序链表无序
EN

Stack Overflow用户
提问于 2011-11-05 08:11:44
回答 2查看 97关注 0票数 0

我的链表有问题。我相信这是正确的,但当我在中添加项目时,我查看了指针的地址,多个指针将指向相同的“结构”。以下是输出的示例:

第一列是名称,第二列是当我实际将项目放入列表中时(当计数器等于该数字时),但它们应该按第三列排序。第四列是结构的地址,第五列是下一个指针的地址。正如你所看到的,A2和A4都指向A3,A1的next是null,但是我没有指向A2的指针,这导致了我的问题。A4应指向A2,A2应指向A3,A3应指向A1。任何帮助都将不胜感激,我已经被困在这里好几个小时了。如果需要更多的解释或代码,请让我知道。

EN

回答 2

Stack Overflow用户

发布于 2011-11-05 08:23:02

我不知道它是否与您的问题有关,但在循环中,不要检查current->next != NULL。该条件意味着您永远不会向列表的末尾添加任何节点。相反,首先添加一个条件current != NULL。如下所示:

代码语言:javascript
复制
while( (current != NULL ) && ( current->timeNeeded < new_process->timeNeeded ) ){
    temp = current;
    current = current->next;
}
票数 1
EN

Stack Overflow用户

发布于 2011-11-05 08:38:49

不确定是否是原因,但是当列表中有一个timeNeeded为X的项目,而您添加了第二个timeNeeded为X的项目时,似乎会出现问题。

在if之后,您知道head不是空的,并且传入节点的timeNeeded不小于head。循环的第一次迭代再次查看head。如果头部和传入节点的timeNeeded值相等,则循环将永远不会运行,从而为您提供指向头部的临时和电流。

在这一点上,您的逻辑基本上是“在传入的旁边设置head->,在头部旁边设置incoming >”。

你没有在你的原始帖子中列出你的timeNeeded值,所以它可能是无关的,但可能是一些值得查看的东西?(例如,将"<=“或">=”放在其中的某个位置,以捕捉两个节点列表的情况)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8017175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档