如何在c中显示使用链表实现的队列元素?
我使用链表实现了队列。显示功能仅打印最后一个元素。但是我想显示所有的元素。有人能纠正它吗?写显示函数的其他方法有哪些?节点声明是否错误 我的代码如下:如何在c中显示使用链表实现的队列元素?,c,queue,C,Queue,我使用链表实现了队列。显示功能仅打印最后一个元素。但是我想显示所有的元素。有人能纠正它吗?写显示函数的其他方法有哪些?节点声明是否错误 我的代码如下: 评论已经发现了问题所在,但只是想给出一个答案: 在insert功能中,以下行是问题所在: np=q->rear; 应该是: q->rear=np; 其工作原理与预期一致: Queue is empty Inserted 1 Inserted 2 Inserted 3 Inserted 4 Removed 1 2 3 4 您是否
评论已经发现了问题所在,但只是想给出一个答案: 在
insert
功能中,以下行是问题所在:
np=q->rear;
应该是:
q->rear=np;
其工作原理与预期一致:
Queue is empty
Inserted 1
Inserted 2
Inserted 3
Inserted 4
Removed 1
2 3 4
您是否确保队列结构本身是正确的,并且前端和所有指针都指向正确的位置?如果您正确缩进代码,您将获得更多帮助。您不会在
insert
函数中更新q->rear
,以便在第一次插入后插入。此行np=q->rear代码>在我看来很奇怪。您是否打算执行q->rear=np代码>?另一个问题:Remove
导致内存泄漏,因为free(np)
仅在最后一个元素被删除时才被调用。@Nithur我很高兴!如果答案完全回答了你的问题,请接受
q->rear=np;
Queue is empty
Inserted 1
Inserted 2
Inserted 3
Inserted 4
Removed 1
2 3 4