我试图为链表做一个参数化的构造函数,而我的程序即将通过使用喜欢的列表来实现队列,所以我想做一个像Queue(int value,int size)的参数化构造函数,但它不会运行或做一个清单 这是我针对此问题的代码
Queue(int value,int _size)
{
for(int i = 0; i < _size; ++i)
{
Node* temp = new Node;
temp->data = value;
temp->next = nullptr;
if(head == nullptr)
{
head = tail = temp;
}
else
{
tail->next = temp;
tail = temp;
}
}
}
我希望结果是用值乘以大小来填充,至少就像我运行此函数Queue x(20,3)一样,链表应该是 20 20 20
答案 0 :(得分:1)
由于这是构造函数,因此head
和tail
未正确初始化为使用它们。我建议在循环之前添加head = tail = nullptr
,看看会发生什么。
答案 1 :(得分:-1)
创建节点后,请遵循以下代码。我希望这会起作用。并且一定要使用i ++而不是++ i,因为后者会使循环大小变为1倍。
if(head == NULL)
head = temp;
else{
Node *x;
x= head;
while(x->next != NULL)
x = x->next;
x->next = temp;
}