📅  最后修改于: 2023-12-03 14:50:52.099000             🧑  作者: Mango
在 C++ 中创建节点通常是指在链表、树、图等数据结构中创建一个新的数据节点。节点作为数据结构的基本组成元素,通常包含数据和链接指针等信息。
下面是一个简单的链表节点的定义:
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
该定义包含了一个整型数据成员 val
,以及一个指针类型成员 next
,指向下一个链表节点。同时,该定义还定义了一个构造函数,用于初始化链表节点的值。
在链表中创建一个新的节点可以通过如下代码实现:
ListNode* newNode = new ListNode(10);
这段代码将创建一个新的链表节点,并将其值初始化为10。
在树中创建节点与链表中类似,不同之处在于树节点通常有多个子节点。以下是一个简单的树节点的定义:
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
同样,该定义包含了一个整型数据成员 val
,以及两个指针类型成员 left
和 right
,分别指向左子树和右子树。该定义也定义了一个构造函数,用于初始化树节点的值。
在树中创建一个新的节点可以通过如下代码实现:
TreeNode* newNode = new TreeNode(10);
这段代码将创建一个新的树节点,并将其值初始化为10。
图中创建节点的方式与链表和树略有不同。在图中,节点通常包含其相邻节点的信息,因此我们需要处理的是相邻节点之间的链接关系。以下是一个简单的图节点的定义:
struct GraphNode {
int label;
vector<GraphNode*> neighbors;
GraphNode(int x) : label(x) {}
};
该定义包含了一个整型数据成员 label
,以及一个向量类型成员 neighbors
,包含了该节点的所有相邻节点。没有构造函数,因为在创建图节点的时候一般需要手动添加其相邻节点。
在图中创建一个新的节点可以通过如下代码实现:
GraphNode* newNode = new GraphNode(10);
这段代码将创建一个新的图节点,并将其标签值初始化为10。
注:代码中的动态内存分配需要在合适的时候进行释放,避免造成内存泄漏等问题。