まず、以下のような構造体を使用して、単方向連結リストのノードを表現します。
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
次に、以下の関数を使用して、単方向連結リストを作成します。
void insert(struct Node head, int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = *head;
*head = newNode;
}
この関数は、新しいノードを作成し、データを設定し、現在のヘッドの次に設定します。そして、新しいノードを新しいヘッドとして設定します。
以下の関数を使用して、単方向連結リストを逆順に表示します。
void displayReverse(struct Node* head) {
if (head == NULL) {
return;
}
displayReverse(head->next);
printf("%d ", head->data);
}
この関数は再帰的に呼び出され、リストの最後のノードに到達するまで再帰的に呼び出されます。そして、リストを後ろから前に向かって表示します。
最後に、メイン関数を作成し、これらの関数を使用して単方向連結リストを作成し、逆順に表示します。
int main() {
struct Node* head = NULL;
// ノードの挿入
insert(&head, 3);
insert(&head, 2);
insert(&head, 1);
// 逆順に表示
printf("リストを逆順に表示: ");
displayReverse(head);
return 0;
}
上記のプログラムをコンパイルして実行すると、以下のような結果が得られます。
リストを逆順に表示: 1 2 3
このように、シンプルなCプログラムを使用して、単方向連結リストを逆順に表示することができます。この方法を使用すると、任意の数の要素を持つリストを逆順に表示することができます。