C単一リンクリストの各ノード値を逆にするプログラム
この記事では、リンクリストが提供されています。私たちのタスクは、単一リンクリストの各ノード値を逆にするCプログラムを作成することです。
リンクリストの各ノードを取得し、値を逆にします。
リンクリスト 別のリンクにリンクされているアイテムを含む一連のリンクです。
問題を理解するために例を見てみましょう
入力
34 12 89 56 72
出力
43 21 98 65 27
この問題を解決するために、単一リンクリストをトラバースして各ノードを取得します。次に、現在のノードの値を逆にします。
単一リンクリストの各ノード値を逆にするプログラム
//単一リンクリストの各ノード値を逆にするようにプログラムします。
例
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
struct Node* insertNode(int key) {
struct Node* temp = new Node;
temp->data = key;
temp->next = NULL;
return temp;
}
int reverseValue(int number) {
int revElement = 0, rem;
while (number != 0) {
rem = number % 10;
revElement = revElement * 10 + rem;
number = number / 10;
}
return revElement;
}
void reverseLinkedListElements(struct Node* node) {
if (node == NULL)
return;
while (node != NULL) {
node->data = reverseValue(node->data);
node = node->next;
}
}
void printLinkedList(struct Node* node) {
while (node != NULL) {
printf("%d ", node->data);
node = node->next;
}
}
int main() {
struct Node* head = NULL;
head = insertNode(34);
head->next = insertNode(12);
head->next->next = insertNode(89);
head->next->next->next = insertNode(56);
head->next->next->next->next = insertNode(72);
printf("Orignal Linked List :\t");
printLinkedList(head);
reverseLinkedListElements(head);
printf("\nAltered Linked List:\t");
printLinkedList(head);
return 0;
} 出力
Orignal Linked List : 34 12 89 56 72 Altered Linked List: 43 21 98 65 27
-
単一リンクリストのノードの積
n個のノードがある場合、タスクは、単一リンクリストのすべてのノードの積を出力することです。プログラムは、最初のノードからNULLが見つからなくなるまで、単一リンクリストのすべてのノードをトラバースする必要があります。 例 Input -: 1 2 3 4 5 Output -: 120 上記の例では、最初のノードから開始して、すべてのノードがトラバースされます。つまり、1、2、3、4、5、6であり、それらの積は1 * 2 * 3 * 4 * 5 * 6 =120 以下で使用するアプローチは次のとおりです 一時的なポインタ、たとえばノードタイプの温度を取得します この一時ポインタを、
-
実際にC言語で反転せずに、リンクリストの反転を印刷します
タスクは、再帰関数を使用して、指定されたリンクリストの逆を印刷することです。プログラムは逆に印刷する必要がありますが、リストを逆にしないでください。つまり、ノードの順序は同じままです。 ここで、プログラムは、リストの最後のノードに格納されているNULLが調べられ、ヘッドノードのデータが出力されるまで、最初のノードのアドレスを含むヘッドポインタを次のノードに移動します。 例 Input: 29 34 43 56 Output: 56 43 34 29 まず、ノードがリストに挿入され、挿入されたノードを指すポインターが開始されます。最終リストが作成された後、一時ポインタが最初のノードポイ