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