编译器说未声明“ head”:LinkedList

时间:2019-10-23 14:56:53

标签: c++ algorithm

我将Node定义为结构并尝试获取它。但是,当我运行我的代码编译器时,未声明“ head”,“ tail”。我定义错误吗?

试图使用模板,但是没有用;

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

您在类List中声明了头和尾,因为它是私有成员字段。但是您是从类外部的方法访问它们的。因此,编译器将引发错误。

答案 1 :(得分:0)

insertFront函数中,您已经编码

head = node
node->next = head;

这是错误的。 head是您对其余链接列表的唯一访问权限。通过执行head = node,您将无法访问列表的其余部分。然后执行node->next = head,实际上将节点指向自身。应该反向进行。

node->next = head;
head = node;

insertBack函数中的另一个错误。 prev中未声明struct Node。在tail插入的正确方法是

tail->next = node;
tail = node;