0
我的任务是编写添加到队列后面并从前面移除的函数。C编程使用FIFO从队列中删除(先进先出)
我已经写信给添加到队列功能:
void queue_put(Queue *q, Qitem *new_item)
{
new_item->next = NULL;
if (queue_empty(q)){
q->front = new_item;
} else {
q->back->next = new_item;
}
q->back = new_item;
}
这工作得很好,但我努力写从队列的前面删除功能:
Qitem * queue_get(Queue *q)
{
if (queue_empty(q)) {
return (Qitem *)0;
} else {
Qitem front_item = q->front;
q->front = q->front->next;
return front_item;
}
}
以上是我最好的尝试,但它不起作用,我想知道是否有人可以帮忙?我意识到这可能是一个基本问题,但我很新。
在这种情况下,您应该发布一个简短正确的可编译示例。 – 2501 2014-10-22 10:42:03
问题在于它包含许多需要编译的文件的程序的一部分,并且不可能将其全部发布在这里。我认为从C队列中排除某些东西可能是相当普遍的做法,但如果不是,我会继续研究,看看我能否找到答案。不管怎么说,还是要谢谢你。 – Neil 2014-10-22 10:49:13
当队列中的* last *项目被删除时,您的队列忽略空值 - 设置返回指针。 – WhozCraig 2014-10-22 10:49:30