C言語でシングリーリンクリストを作成する方法
C言語によるシングルリンクリストの基本的な作成手順は以下のとおりです:
- ノードを表す構造体を定義し、データ領域とポインター領域という 2 つのメンバを持ちます。
struct Node {
int data;
struct Node* next;
};
- 先頭ノードを作成し、そのポインタ域をNULLに初期化します。
struct Node* head = NULL;
- 連結リストに新しいノードを挿入する関数を定義します。この関数は整数を受け取り、それを新しいノードのデータフィールドに格納し、その新しいノードを連結リストの最後に挿入します。
void insert(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = NULL;
if (head == NULL) {
head = newNode;
} else {
struct Node* current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
}
- リンクリスト内のすべてのノードを走査して表示する関数を定義します。
void printList() {
struct Node* current = head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
- メイン関数を書いて、先の関数を呼び出して、リンクドリストの作成、挿入、プリントを行う
int main() {
insert(1);
insert(2);
insert(3);
printList();
return 0;
}
このサンプルコードでは、3つのノードからなる連結リストを作成し、各ノードの値を出力しています。出力結果は1 2 3です。この基礎をもとに、挿入、削除、ノードの検索などの機能を追加することができます。