好的只是开始我已经知道这是错的我只是无法弄清楚插入“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++;
}
我想我真正的问题是我对指针缺乏了解。
注意:未完成此编辑不支持
答案 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();
注意:这只适用于最后一个链接,我确定你知道你在那里做了什么。