队列链接列表出列功能

时间:2015-11-13 22:24:35

标签: c++ linked-list queue

我目前正在学习各种链表队列和堆栈。我正在阅读有关各种队列功能的一些注释。我无法理解提供的出列函数。

void CintQueue::Dequeue(int& item) //Remove front Item from the Queue
{
   Node *TempPtr;

   TempPtr = m_qFront;
   item = m_qFront->data;
   m_qFront = m_qFront->next;
   if (m_qFront == NULL)
       m_qRear = NULL;
   delete TempPtr;
}

我不明白为什么有一个参数被传递到队列。它的目的是什么?我从代码中看到它从前节点分配了数据值,但函数dequeue没有返回值,所以我不理解它的用途。有人可以解释这个功能是如何工作的吗? 是否需要单独的函数来获取从队列中删除的值?

2 个答案:

答案 0 :(得分:0)

函数参数传递一个引用。因此,当它在函数中设置时,它会设置作为参数传递的变量:

CintQueue q;  // define queue
// fill q with ints
int i;
q.Dequeue(i);  // i is set here

答案 1 :(得分:0)

传递与队列的第一个对象具有相同类型的变量的引用。在该方法中,第一项的数据被保存到该变量中,然后该项被删除。因此,您只需一个函数调用即可获取队列头项的数据并将其删除。

传递对函数的引用并为其赋值,这是void函数返回某些东西的一种方法。您也可以使用返回值和不带参数的方法创建具有相同目的的方法。