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

C++-এ সিঙ্গলি লিংকড লিস্টকে XOR লিংকড লিস্টে কনভার্ট করা

এই টিউটোরিয়ালে আমরা একটি সিঙ্গলি লিংকড লিস্টকে XOR লিংকড লিস্টে কনভার্ট করার প্রোগ্রাম নিয়ে আলোচনা করব।

এখানে আমাদের একটি সিঙ্গলি লিংকড লিস্ট দেওয়া থাকবে। আমাদের কাজ সেই লিস্টের এলিমেন্টগুলো নিয়ে সেটিকে XOR লিংকড লিস্টে কনভার্ট করা।

বাস্তবায়ন

#include <bits/stdc++.h> 
using namespace std; 

// লিংকড লিস্টের নোড স্ট্রাকচার
struct Node { 
    int data; 
    struct Node* next; 
}; 

// নতুন নোড তৈরি
Node* newNode(int data) { 
    Node* temp = new Node; 
    temp->data = data; 
    temp->next = NULL; 
    return temp; 
} 

// সিঙ্গলি লিংকড লিস্ট প্রিন্ট করা
void print(Node* head) { 
    while (head) { 
        cout << head->data << " "; 
        head = head->next; 
    } 
    cout << endl; 
} 

// XOR ভ্যালু ক্যালকুলেট করা
Node* XOR(Node* a, Node* b) { 
    return (Node*)((uintptr_t)(a) ^ (uintptr_t)(b)); 
} 

// সিঙ্গলি লিংকড লিস্ট কনভার্ট করা
void convert(Node* head) { 
    Node* curr = head; 
    Node* prev = NULL; 
    Node* next = curr->next; 
    while (curr) { 
        next = curr->next; 
        curr->next = XOR(prev, next); 
        prev = curr; 
        curr = next; 
    } 
} 

// XOR লিংকড লিস্ট প্রিন্ট করা
void printXOR(Node* head) { 
    Node* curr = head; 
    Node* prev = NULL; 
    while (curr) { 
        cout << curr->data << " "; 
        Node* temp = curr; 
        curr = XOR(prev, curr->next); 
        prev = temp; 
    } 
    cout << endl; 
} 

int main() { 
    Node* head = newNode(1); 
    head->next = newNode(2); 
    head->next->next = newNode(3); 
    head->next->next->next = newNode(4); 
    cout << "Before Conversion : " << endl; 
    print(head); 
    convert(head); 
    cout << "After Conversion : " << endl; 
    printXOR(head); 
    return 0; 
}

আউটপুট

Before Conversion : 1 2 3 4
After Conversion : 1 2 3 4
  1. লিংকড লিস্ট ফ্ল্যাটেন করা (C++)

  2. C++-এ সর্টেড লিংকড লিস্টকে ব্যালেন্সড বাইনারি সার্চ ট্রিতে রূপান্তর করা

  3. বাইনারি সার্চ ট্রিকে সিঙ্গলি লিঙ্কড লিস্টে রূপান্তর C++-এ

  4. সি++-এ সিঙ্গলি লিংকড লিস্টের প্রাইম নোডগুলোর গুণফল বের করার প্রোগ্রাম