Facing debugging problem when implementing doubly linked list in C++(在C++中实现双向链表时面临的调试问题)
本文介绍了在C++中实现双向链表时面临的调试问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在实现一个双向链表,其中每个节点都有两个指针。一个指向列表中的下一个节点,而另一个指向上一个节点。 节点结构由一个整数和指向列表中下一个节点的节点指针组成。另一个指针指向列表中的前一个指针。 该类包含两个节点指针:一个指向列表的头部,另一个指向列表的尾部。如果列表为空,则它们都应指向nullptr。我的代码是
#include <iostream>
using namespace std;
struct Node
{
int value;
Node *next;
Node *tail; //previous node pointer
};
class LinkedList
{
private:
Node *head;
Node *tail;
public:
int size;
LinkedList()
{
head = nullptr;
tail = nullptr;
size = 0;
}
int length()
{
return size;
}
void append(int val)
{
if (head == nullptr)
{
head = new Node(val);
return;
}
// Iterate to end of list
Node *current;
current = head;
while (current->next != nullptr)
{
current = current->next;
}
// Link new node to end of list
current->next = new Node(val);
}
};
int main()
{
};
我收到此错误:
error: no matching constructor for initialization of 'Node' head = new Node(val); ^ ~~~ linked_list.cpp:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'int' to 'const Node' for 1st argument struct Node ^ linked_list.cpp:4:8: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 1 was provided 2 errors generated.
欢迎任何有关我在哪里可以阅读有关此主题的更多信息的建议/链接:)预先感谢您!
推荐答案
在Other to Callnew Node(val)
中,其中val
是int
,您的Node
需要将int
作为参数的构造函数。
也许:
struct Node
{
int value;
Node *next;
Node *tail;
Node(int v) : value(v), next(nullptr), tail(nullptr) { }
};
这篇关于在C++中实现双向链表时面临的调试问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在C++中实现双向链表时面临的调试问题
基础教程推荐
猜你喜欢
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- 运算符重载的基本规则和习语是什么? 2022-10-31
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- 设计字符串本地化的最佳方法 2022-01-01
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01
- C++,'if' 表达式中的变量声明 2021-01-01