C言語で単純連結リストを作成する方法
C言語でシングルクリンクドリストを作成する手順:
- リストのノードを表す構造体を定義して、2つのメンバー変数(データと次のノードへのポインタ)を持つ。
struct ListNode {
int data;
struct ListNode* next;
};
- 連結リストの先頭ノードを作成し、ポインタで指し示す。
struct ListNode* head = NULL;
- 新しいノードを作成して、そのメモリ空間を割り当てる。
struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
- 新しいノードのデータメンバに値を割り当てる。
newNode->data = value;
- 新しいノードをリンクリストに挿入し、リストの先頭または末尾に、または特定の規則に従って挿入します。
newNode->next = head;
head = newNode;
- 3から5までの手順を、リンクリスト全体が作成されるまで繰り返す。
包括C代码示例:
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点的结构体
struct ListNode {
int data;
struct ListNode* next;
};
int main() {
// 创建链表的头节点
struct ListNode* head = NULL;
// 创建新的节点,并为其分配内存空间
struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
// 给新节点的数据成员赋值
newNode->data = 1;
// 将新节点插入到链表中
newNode->next = head;
head = newNode;
// 重复创建新节点的过程
// ...
return 0;
}
リンクリストの使用後は、メモリリークを避けるためにリンクリストノードのメモリ空間を解放する必要があります。リンクリストを走査し、各ノードのメモリ空間を逐次解放することで実現できます。