在什么时候“item”被插入到这部分代码中

时间:2014-02-15 05:04:57

标签: c++ linked-list queue

好的只是开始我已经知道这是错的我只是无法弄清楚插入“item”的位置所以我可以改变这种情况发生的方式:

void Enqueue(T item)
    {
    if(num_items != MAX_SIZE)
       {

        Node *p = new Node; // creating a new node p
        Node *q = new Node;// creating a new node q
        front = p; // make p point directly to front
        p -> data = item; // set item equal to whatever is in p
        p->link = front; // um, pretty much saying the "front node" is next?
        num_items++;
       }

我想我真正的问题是我对指针缺乏了解。

注意:未完成此编辑不支持

1 个答案:

答案 0 :(得分:1)

我不确定你在这里问什么,但我会尽力尝试解释你的代码。

所以你将一些数据(项目obj)传递给你的函数

void Enqueue(T item)

检查项目数(在我认为的列表中)不是最大值

if(num_items != MAX_SIZE)

然后创建一个类型为node

的新对象
 Node *p = new Node; // creating a new node p

然后将节点的数据成员(类型T?)分配给您传入的项目。

p -> data = item; // set item equal to whatever is in p

然后将最后一个节点(项目堆栈顶部的节点)链接到此节点(将它们链接在一起)

p->link = front; // um, pretty much saying the "front node" is next?

然后将前变量设置为刚刚创建的节点(这样您就可以将它链接到下一个节点或知道从哪里开始等等。)

front = p; // make p point directly to front?

最后你将项目总数增加1

 num_items++;
像我说的那样,我不确定你想知道什么,但我希望这会以某种小的方式帮助你:)

使用您传入的数据(类型T),您可以使用:

front->data->DATAMEMBER();

注意:这只适用于最后一个链接,我确定你知道你在那里做了什么。