Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में सिंगल लिंक्ड लिस्ट को XOR लिंक्ड लिस्ट में कन्वर्ट करें

इस ट्यूटोरियल में, हम सिंगल लिंक्ड लिस्ट को XOR लिंक्ड लिस्ट में बदलने के प्रोग्राम पर चर्चा करेंगे।

इसके लिए हमें सिंगल लिंक्ड लिस्ट उपलब्ध कराई जाएगी। हमारा काम उस सूची के तत्वों को लेना और उसे एक XOR लिंक्ड सूची में बदलना है।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//node structure of linked list
struct Node {
   int data;
   struct Node* next;
};
//creation of new node
Node* newNode(int data){
   Node* temp = new Node;
   temp->data = data;
   temp->next = NULL;
   return temp;
}
//printing singly linked list
void print(Node* head){
   while (head) {
      cout << head->data << " ";
      head = head->next;
   }
   cout << endl;
}
//calculating XORed values
Node* XOR(Node* a, Node* b){
   return (Node*)((uintptr_t)(a) ^ (uintptr_t)(b));
}
//converting the singly linked list
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;
   }
}
//printing the XORed linked list
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++ में बाइनरी सर्च ट्री में बदलने का कार्यक्रम

    मान लीजिए कि हमारे पास एक एकल लिंक की गई सूची है जहां तत्वों को गैर-घटते क्रम में व्यवस्थित किया गया है, हमें इसे एक ऊंचाई संतुलित बाइनरी सर्च ट्री में बदलना होगा। तो अगर सूची [-10, -3, 0, 5, 9] की तरह है, तो संभावित पेड़ इस तरह होगा - इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - यदि सूची खा

  1. सी++ में बाइनरी सर्च ट्री को सिंगल लिंक्ड लिस्ट में बदलने का प्रोग्राम?

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें इसे एक सिंगल लिंक्ड लिस्ट (जगह में) में बदलना होगा। तो, अगर इनपुट पसंद है तो आउटपुट होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: सेवा पिछला:=शून्य एक पुनरावर्ती फ़ंक्शन हल () को परिभाषित करें, जो इनपुट के रूप में रूट लेगा। यदि रूट श

  1. C++ में सिंगल लिंक्ड लिस्ट में सभी प्राइम नोड्स का उत्पाद

    एन नोड्स के साथ दिया गया और कार्य एक लिंक्ड सूची में सभी प्राइम नोड्स के उत्पाद को प्रिंट करना है। प्राइम नोड्स वे हैं जिनके पास उनके गिनती स्थानों के रूप में प्रमुख मान होंगे। इनपुट 10 20 30 40 50 आउटपुट 4,00,000 स्पष्टीकरण -10 इंडेक्स वैल्यू 1 पर है जो नॉन-प्राइम है इसलिए इसे छोड़ दिया जाएगा।