📜  在 C++ 中创建节点(1)

📅  最后修改于: 2023-12-03 14:50:52.099000             🧑  作者: Mango

在 C++ 中创建节点

在 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,以及两个指针类型成员 leftright,分别指向左子树和右子树。该定义也定义了一个构造函数,用于初始化树节点的值。

在树中创建一个新的节点可以通过如下代码实现:

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。

注:代码中的动态内存分配需要在合适的时候进行释放,避免造成内存泄漏等问题。