📜  cum creez un nou nod 如何创建新节点 - C 编程语言(1)

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

如何创建新节点 - C 编程语言

在 C 编程语言中,我们可以使用指针数据类型来动态创建新的节点。

1. 定义节点结构体

首先,我们需要定义一个节点结构体,用于表示节点的数据和指向下一个节点的指针。

typedef struct node {
  int data;
  struct node *next;
} Node;

以上代码使用 typedef 关键字定义了一个 struct node 的别名 Node,方便我们以后使用。

这个结构体包含两个成员变量:

  • data:表示当前节点保存的数据
  • next:指向下一个节点的指针
2. 创建新节点

现在,我们可以通过 malloc() 函数动态创建一个新节点,并将数据填入其中。最后,将新节点的 next 指针设置为 NULL

Node *newNode = (Node*)malloc(sizeof(Node));
newNode->data = 10;
newNode->next = NULL;

以上代码创建了一个新的节点,并将 data 成员设置为 10next 成员设置为 NULL。需要注意的是,我们需要将 malloc() 返回的指针转换为 Node* 类型。

3. 将新节点插入链表

现在,我们可以将新节点插入到链表中了。比如,我们有一个链表头节点 head,需要将新节点插入到它的后面。则可以使用以下代码:

newNode->next = head->next;
head->next = newNode;

以上代码将新节点的 next 指针指向原链表的第二个节点(如果有),然后将链表头的 next 指针修改为新节点。

完整代码
#include <stdio.h>
#include <stdlib.h>

typedef struct node {
  int data;
  struct node *next;
} Node;

int main() {
  Node *head = (Node*)malloc(sizeof(Node));
  head->data = 0;
  head->next = NULL;

  Node *newNode = (Node*)malloc(sizeof(Node));
  newNode->data = 10;
  newNode->next = NULL;

  newNode->next = head->next;
  head->next = newNode;

  return 0;
}

以上代码创建了一个链表头节点 head,然后创建了一个新节点 newNode,最后将 newNode 插入到 head 后面。