C言語で単方向連結リストを作成する手法は?

単方向リストを作成する方法はいくつかあり、以下はその一般的な方法の一つです。

  1. リストノードの構造体を定義してください。データの領域と次のノードを指すポインターの領域が含まれます。
struct Node {
int data;
struct Node* next;
};
  1. リンクドリストのヘッダノードを作成し、空を初期化します。
struct Node* head = NULL;
  1. 既存のノードに次々とノードを追加します。ヘッドとテールどちらからノードを追加するか選択します。
  1. 先頭にノードを追加する:
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));  // 创建新节点
newNode->data = value;  // 设置节点的数据域
newNode->next = head;  // 将新节点的指针域指向当前头节点
head = newNode;  // 更新头节点为新节点
  1. 末尾にノードを追加する:
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));  // 创建新节点
newNode->data = value;  // 设置节点的数据域
newNode->next = NULL;  // 将新节点的指针域置为NULL
if (head == NULL) {  // 如果链表为空,则将新节点设为头节点
head = newNode;
} else {
struct Node* temp = head;
while (temp->next != NULL) {  // 找到最后一个节点
temp = temp->next;
}
temp->next = newNode;  // 将新节点连接到最后一个节点
}
  1. ノードの挿入、削除などの操作でリンクリストを変更することもできます。

リンクリストを使用したら、メモリリークを防ぐため、メモリを解放することを忘れないでください。

struct Node* temp = head;
while (head != NULL) {
temp = head;
head = head->next;
free(temp);
}
bannerAds