出列功能无法正常工作

时间:2018-02-06 16:34:27

标签: c pointers deque

有谁能告诉我我的出队功能有什么问题?它总是一遍又一遍地保持第一个值,但在其他方面看起来效果很好。提供样本输出。

NODE *dequeue(NODE **queue)
    {
        if (*queue == NULL)
        {
            return;
        }
        NODE *pTemp = *queue;
        printf("[%d %d] -> ", pTemp->pid, pTemp->priority);
        *queue = (*queue)->next;
        return pTemp;
    }

enter image description here

正在调用函数:

NODE *someQueue;
//code to add values here
for (i = 0; i < numberOfQueueItems; i++)
{
    printf("\nDequeue time.\n");
    printList("readyQ", someQueue);
    dequeue(someQueue);
}

1 个答案:

答案 0 :(得分:3)

您没有正确调用?Extract。它需要一个指向NODE的双指针,但是你将指针传递给NODE

更改

dequeue

dequeue(someQueue);