C++链表继承自结点类
时间: 2023-07-17 13:06:10 浏览: 53
当我们在C++中实现链表时,通常不会将链表本身直接继承自节点类。相反,我们会将链表作为一个独立的类,而节点类则是链表类的一个私有内部类。
下面是一个简单的示例,展示了如何在C++中实现一个链表,其中节点类作为链表类的私有内部类:
```cpp
#include <iostream>
class LinkedList {
private:
class Node {
public:
int data;
Node* next;
Node(int value): data(value), next(nullptr) {}
};
Node* head;
public:
LinkedList(): head(nullptr) {}
void insert(int value) {
Node* newNode = new Node(value);
if (head == nullptr) {
head = newNode;
} else {
Node* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
temp->next = newNode;
}
}
void display() {
Node* temp = head;
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << std::endl;
}
};
int main() {
LinkedList list;
list.insert(1);
list.insert(2);
list.insert(3);
list.display(); // 输出: 1 2 3
return 0;
}
```
在上述代码中,节点类 `Node` 是链表类 `LinkedList` 的私有内部类。链表类具有一个头指针 `head`,默认初始化为 `nullptr`。链表类中的 `insert` 函数用于向链表中插入新节点, `display` 函数用于遍历并输出链表中的所有节点。
通过将节点类作为链表类的私有内部类,我们隐藏了节点类的实现细节,并将其作为链表类的一部分进行管理。这样可以更好地封装数据结构,提供更友好的接口和操作方法。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)