- リンクリストのノードを表す構造体を定義します。各ノードは、データ要素と次のノードへのポインタを持ちます。
struct Node {
int data;
struct Node* next;
};
- ノードを追加するための関数を作成します。以下の例では、リンクリストの末尾にノードを追加する方法を示しています。
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;
}
- ノードの追加をテストするために、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言語でリンクリストにノードを追加することができます。必要に応じて、ノードの追加位置や他の操作をカスタマイズすることもできます。