【发布时间】:2020-04-06 11:13:38
【问题描述】:
嘿,我正在尝试添加到我的队列中,但我遇到了问题,我需要一些帮助 我为我的队列使用了一个链接列表,问题是当我将第三个项目添加到我的列表中时,我覆盖了第二个 这是代码
void addnode(node* data)
{
if (begin == NULL)
{
data->next = begin;
begin = data;
}
else
{
end = data; //this is where the problem when i add a 3rd data i dont save anywhere my end so its gone
begin->next = end;
end->next = NULL;
}
}
在我的代码中,我已经开始队列的开始,结束队列
我建立的链表是 C++ 中的类, 但是每当我添加第三个数据时,第二个数据就会被覆盖,所以我总是有两个.. 我需要一些关于如何修复它的帮助,谢谢:)
编辑这是更多的代码:这是我的队列类
#include"node.h"
class queue
{
public:
queue();
~queue();
void addNode(node*);
private:
node* begin;
node* end;
};
这是我从中获取数据的类
using namespace std;
class node
{
friend void printclient(node &);
public:
node();
~node();
void setstr(string);
void setmoney(int);
node* next;
private:
string name;
double money;
int id;
};
【问题讨论】:
-
end指针代表什么? -
请显示足够的代码。
begin和end是未定义的,node的结构也是如此。 -
我发布了编辑
-
@shahar 不幸的是,编辑还不够。例如,
next在哪里定义?请仔细阅读help for posting questions,并创建minimal, reproducible example。 -
现在可以了,我希望
标签: c++ class linked-list queue singly-linked-list