以下に、連結リストの先頭にノードを追加するためのシンプルな方法とコード例を示します。
まず、以下のような構造体を定義します。
typedef struct Node {
int data;
struct Node* next;
} Node;
次に、連結リストの先頭にノードを追加する関数を実装します。
void addNodeAtBeginning(Node head, int newData) {
// 新しいノードを作成し、データを設定する
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = newData;
// 新しいノードの次のポインタを現在の先頭ノードに設定する
newNode->next = *head;
// 新しいノードをリストの先頭に設定する
*head = newNode;
}
上記の関数では、新しいノードを作成し、データを設定します。そして、新しいノードの次のポインタを現在の先頭ノードに設定し、新しいノードをリストの先頭に設定します。
以下は、上記の関数を使用して連結リストにノードを追加する例です。
int main() {
// 空の連結リストを作成する
Node* head = NULL;
// ノードを追加する
addNodeAtBeginning(&head, 10);
addNodeAtBeginning(&head, 20);
addNodeAtBeginning(&head, 30);
// リストの要素を表示する
Node* currentNode = head;
while (currentNode != NULL) {
printf("%d ", currentNode->data);
currentNode = currentNode->next;
}
return 0;
}
上記のコードでは、空の連結リストを作成し、addNodeAtBeginning
関数を使用してノードを追加しています。最後に、リスト内の要素を表示しています。