Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C เพื่อย้อนกลับแต่ละค่าโหนดใน Singly Linked List


ในบทความนี้ เราได้รับรายการเชื่อมโยง หน้าที่ของเราคือสร้างโปรแกรม 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