ในบทความนี้ เราได้รับรายการเชื่อมโยง หน้าที่ของเราคือสร้างโปรแกรม C เพื่อย้อนกลับค่าโหนดแต่ละรายการในรายการที่เชื่อมโยงโดยลำพัง
เราจะนำแต่ละโหนดของรายการที่เชื่อมโยงและกลับค่า
รายการที่เชื่อมโยง คือลำดับของลิงก์ที่มีรายการต่างๆ ที่เชื่อมโยงไปยังลิงก์อื่น
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
34 12 89 56 72
ผลลัพธ์
43 21 98 65 27
เพื่อแก้ปัญหานี้ เราจะสำรวจรายการที่มีการเชื่อมโยงเดี่ยวและนำแต่ละโหนด แล้วกลับค่าของโหนดปัจจุบัน
โปรแกรมย้อนกลับแต่ละค่าโหนดในรายการที่เชื่อมโยงแบบเดี่ยว
// โปรแกรมย้อนกลับแต่ละค่าโหนดใน Singly Linked List.
ตัวอย่าง
#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