链表参数化构造函数

时间:2019-04-10 21:26:39

标签: class c++11 linked-list queue

我试图为链表做一个参数化的构造函数,而我的程序即将通过使用喜欢的列表来实现队列,所以我想做一个像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

2 个答案:

答案 0 :(得分:1)

由于这是构造函数,因此headtail未正确初始化为使用它们。我建议在循环之前添加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;

}