কম্পিউটার টিউটোরিয়াল

C-তে সিঙ্গলি লিঙ্কড লিস্টের প্রতিটি নোডের মান উল্টো করা

একটি সিঙ্গলি লিঙ্কড লিস্ট দেওয়া আছে। প্রতিটি নোডের ডেটা ভ্যালু উল্টো (রিভার্স) করে লিস্ট আপডেট করতে হবে।

উদাহরণ

ইনপুট লিস্ট: 34 → 12 → 89 → 56 → 72

আউটপুট লিস্ট: 43 → 21 → 98 → 65 → 27

পদ্ধতি

  • struct Node { int data; struct Node* next; }।
  • insertNode() দিয়ে নোড তৈরি।
  • reverseValue() ফাংশনটি একটি সংখ্যার ডিজিটগুলো উল্টো করে (123 → 321)।
  • reverseLinkedListElements() দিয়ে পুরো লিস্ট ট্রাভার্স করে প্রতিটি নোডের ডেটা রিভার্স করা হয়।

C প্রোগ্রাম উদাহরণ

#include <stdio.h>
#include <stdlib.h>

struct Node { int data; struct Node* next; };

struct Node* insertNode(int key) {
    struct Node* temp = (struct Node*)malloc(sizeof(struct Node));
    temp->data = key; temp->next = NULL; return temp;
}

int reverseValue(int number) {
    int rev = 0, rem;
    while (number != 0) {
        rem = number % 10;
        rev = rev * 10 + rem;
        number /= 10;
    }
    return rev;
}

void reverseLinkedListElements(struct Node* node) {
    if (!node) return;
    while (node) {
        node->data = reverseValue(node->data);
        node = node->next;
    }
}

void printLinkedList(struct Node* node) {
    while (node) { printf("%d ", node->data); node = node->next; }
}

int main() {
    struct Node* 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("Original: "); printLinkedList(head);
    reverseLinkedListElements(head);
    printf("\nReversed: "); printLinkedList(head);
    return 0;
}

আউটপুট

Original: 34 12 89 56 72
Reversed: 43 21 98 65 27
  1. সিংলি লিংকড লিস্টে সংখ্যা রিভার্স আর্ডারে ডিসপ্লে করার C প্রোগ্রাম

  2. সি প্রোগ্রামিং-এ লিংকড লিস্টের শেষ থেকে n-তম নোড বের করা

  3. সিঙ্গলি লিংকড লিস্টের সব নোডের গুণফল বের করা

  4. সি প্রোগ্রামিং-এ লিংকড লিস্ট রিভার্স না করে রিভার্স অর্ডারে প্রিন্ট করা