c++11 - 自己声明结构?
问题描述
我已经开始研究数据结构了,链表就弹出来了。链表背后的想法很简单,但实现(我使用 c++)有点令人困惑,尤其是关于链表中使用的节点。C++中为单链表定义节点的方式如下
// A linked list node
struct Node {
int data;
struct Node* next;
};
或者如果我们使用类,那么它是这样定义的。
class Node {
public:
int data;
Node* next;
};
我的困惑出现在这里。如何在 struct Node 中定义另一个具有相同名称的结构?我看到新结构是一个指向节点的指针,但是这个实现实际上是如何工作的?这真的很令人困惑:(
解决方案
要声明一个指向你不需要定义类的指针,只需要它的声明。因此这不是递归定义,编译器不会遇到问题。
你可以这样想:无论指针的类型如何,指针成员的大小都是相同的,它仍然只需要寻址内存中任何位置的容量。
推荐阅读
- python - 在排序一个列表期间将不同列表中的相关元素保持在一起
- c# - 如何对通用列表对象进行排序
- javascript - 向和从 js 服务器发送数据的基本方法?
- json - 使用 Pyspark 处理 JSON 结构
- amazon-web-services - 为什么角色假设应该在 lambda 内部完成?
- html - 如何将数值绑定到 CSS 以创建时间线?
- docker - 如何为 docker compose 环境变量设置运行时变量
- javascript - 仅在 Javascript 中具有不同段落的动态 Div
- tsql - 表格模型中的测量列未在浏览器中显示正确的值
- javascript - 调用此函数时如何获取返回值?