【问题标题】:how to run through a linked list and print only what contains a certain data then run through it again to print what contains another data in c?如何遍历链表并仅打印包含特定数据的内容,然后再次运行以打印包含 c 中其他数据的内容?
【发布时间】:2021-07-17 02:04:49
【问题描述】:

我是编程的初学者,我有一个我必须做的程序:所以基本上是“在医生办公室预约” 我快完成了,但是有一个功能,我有一个问题,它会打印病人的等待名单:先打印那些有预约的人,然后打印那些没有预约的人。 我显然使用了一个双向链表,其中包含 n 个患者信息。除了个人信息之外,信息还包含,如果来的患者有预约。如果他有,他有一个数字 >0(第一个有预约的人得到 1)如果不是,那么一个数字

    void waiting(void)
{
    currentc=firstc;
    while (currentc->next!=NULL)
    {
        currentc=currentc->next;
    }
    while(currentc!=NULL)
    {
        if(currentc->prio>0)
        {printf("%6d: %-20s %-6s %-15s %-20s %-8s %-8d\n",\
                currentc->number,\
                currentc->name,\
                currentc->age,\
                currentc->phone,\
                currentc->numcin,\
                currentc->state,\
                currentc->prio);
        }

       currentc=currentc->prev;
    }
    currentc=firstc;
    while (currentc->next!=NULL)
    {
        currentc=currentc->next;
    }

    while(currentc!=NULL)
    {
        if(currentc->prio<0)
        {printf("%6d: %-20s %-6s %-15s %-20s %-8s %-8d\n",\
                currentc->number,\
                currentc->name,\
                currentc->age,\
                currentc->phone,\
                currentc->numcin,\
                currentc->state,\
                currentc->prio);
        }

       currentc=currentc->prev;
    }
}

【问题讨论】:

  • 请提供一个最小的、可重现的例子,见stackoverflow.com/help/minimal-reproducible-example
  • 你的循环打印东西[按reverse顺序] 如果 prioeither i> &gt;0&lt;0not 如果它 零。因此,请编辑您的问题并发布更多代码,因为问题可能出在其他地方。 (例如)prio 值或prev 和/或next 成员的设置不正确。

标签: c linked-list doubly-linked-list


【解决方案1】:

如果您只打印第一个节点,则意味着您的列表未链接。你分享的代码是可以遍历的。

【讨论】:

  • 我有一个列出所有患者信息的功能,它工作得很好。我还是迷路了,找不到问题
  • 让我总结一下你的代码在做什么。首先它会发生,而下一个不是空值。它到达了终点。从那里开始,如果患者有预约,它会倒退并打印。然后,它将 currentc 设置为 prev 并根据您所说的,它停止。这意味着当您链接节点时,您链接了下一个节点,但您没有链接前一个节点。您可以显示链接它们的代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-17
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 2019-01-04
  • 1970-01-01
相关资源
最近更新 更多