C言語でリンクリストを使用してノードを追加する方法


  1. リンクリストのノードを表す構造体を定義します。各ノードは、データ要素と次のノードへのポインタを持ちます。
struct Node {
    int data;
    struct Node* next;
};
  1. ノードを追加するための関数を作成します。以下の例では、リンクリストの末尾にノードを追加する方法を示しています。
void push(struct Node head_ref, int new_data) {
    // 新しいノードの作成
    struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
    new_node->data = new_data;
    new_node->next = NULL;
    // リンクリストが空の場合
    if (*head_ref == NULL) {
        *head_ref = new_node;
        return;
    }
// リンクリストの末尾まで移動
    struct Node* last_node = *head_ref;
    while (last_node->next != NULL) {
        last_node = last_node->next;
    }
// ノードを末尾に追加
    last_node->next = new_node;
}
  1. ノードの追加をテストするために、main関数を作成します。以下の例では、3つのノードを含むリンクリストを作成し、新しいノードを追加しています。
int main() {
    // リンクリストの先頭ノードのポインタ
    struct Node* head = NULL;
    // ノードを追加
    push(&head, 1);
    push(&head, 2);
    push(&head, 3);
    // リンクリストの内容を表示
    struct Node* current_node = head;
    while (current_node != NULL) {
        printf("%d ", current_node->data);
        current_node = current_node->next;
    }
    return 0;
}

上記のコードを実行すると、出力結果として "1 2 3" が表示されます。これは、リンクリストにノードが正しく追加されたことを示しています。

この方法を使用して、C言語でリンクリストにノードを追加することができます。必要に応じて、ノードの追加位置や他の操作をカスタマイズすることもできます。