【发布时间】:2019-10-14 10:56:28
【问题描述】:
所以我有类 LinkedList。有人可以解释为什么 node * head 在结构之外,而 node * next, prev 在结构内吗?这样做的目的是什么,它与其他人有何不同?谢谢
class LinkedList
{
public:
LinkedList();
~LinkedList();
void add(char ch);
bool find(char ch);
bool del(char ch);
void display(
private:
struct node
{
char data;
node * next;
node * prev;
};
node *head;
};
【问题讨论】:
-
我认为您应该重新阅读您正在使用的任何书籍中有关链接列表的部分。或者在您对此不了解的地方更明确一点。
-
要访问第一个元素,您需要头部。请记住,整个类都是您的 LinkedList,而不仅仅是结构。 struct只是LinkedList中的一个元素,它指向前一个元素和下一个元素(因此是一个双链表)并包含数据
-
head不是struct node定义的一部分。每个节点都没有自己的head。head是一个指向struct node实例的指针,表示指向由 0 个或多个节点组成的链表的指针。 -
看代码。
LinkedList的构造函数可能看起来类似于:LinkedList::LinkedList() : head(nullptr) {},然后看看add()中发生了什么。
标签: c++ struct linked-list