-1
我要實現的是應該做的方法:從隊列中取出特定值?
// int dequeue(queue_t* q, int* number);
但是我不知道什麼是第二個參數的點,因爲總是需要dequeing的最後一個值。我使用循環緩衝區來實現它。我最初的想法是:
int dequeue(queue_t* q, int* val) {
if(q->size==0){
printf("Queue is Empty\n");
return QUEUE_IS_EMPTY;
}
else {
printf("Dequeueing\n");
q->size--;
q->front++;
if (q->front == q->capacity)
{
q->front = 0;
}
}
return 0;
}
我不知道這是像複製粘貼或錯誤的錯誤?
我們怎麼能知道呢?我們只能猜測,這個問題太廣泛了。你不提供[mcve]。我們不知道'queue_t'。 – Stargateur
您的代碼示例沒有從隊列中返回任何值,所以我的猜測是您需要通過'int * val'參數返回實際出列值,並返回狀態結果。另外,如果這是一個循環緩衝區,那麼'q-> size'是多餘的(並且會導致併發訪問問題)。 – Groo