इस लेख में, हमें एक लिंक्ड सूची दी गई है। हमारा काम सिंगल लिंक्ड लिस्ट में प्रत्येक नोड वैल्यू को रिवर्स करने के लिए एक सी प्रोग्राम बनाना है।
हम लिंक की गई सूची के प्रत्येक नोड को लेंगे और मान को उलट देंगे।
लिंक की गई सूची लिंक का एक क्रम है जिसमें ऐसे आइटम होते हैं जो किसी अन्य लिंक से जुड़े होते हैं।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
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