有谁能告诉我我的出队功能有什么问题?它总是一遍又一遍地保持第一个值,但在其他方面看起来效果很好。提供样本输出。
NODE *dequeue(NODE **queue)
{
if (*queue == NULL)
{
return;
}
NODE *pTemp = *queue;
printf("[%d %d] -> ", pTemp->pid, pTemp->priority);
*queue = (*queue)->next;
return pTemp;
}
正在调用函数:
NODE *someQueue;
//code to add values here
for (i = 0; i < numberOfQueueItems; i++)
{
printf("\nDequeue time.\n");
printList("readyQ", someQueue);
dequeue(someQueue);
}
答案 0 :(得分:3)
您没有正确调用?Extract
。它需要一个指向NODE的双指针,但是你将指针传递给NODE
更改
dequeue
到
dequeue(someQueue);