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

C++ प्रोग्राम में प्रत्येक नोड पर अधिक तत्वों के साथ दी गई दो लिंक्ड सूची से नई लिंक्ड सूची बनाएं

इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो दी गई लिंक्ड लिस्ट से एक नई लिंक्ड लिस्ट बनाता है।

हमने एक ही आकार की दो लिंक्ड सूचियाँ दी हैं और हमें दो लिंक्ड सूचियों से एक नई लिंक्ड सूची बनानी है, जिसमें दो लिंक्ड सूचियों से अधिकतम संख्याएँ हों।

आइए समस्या को हल करने के लिए चरणों को देखें।

  • एक स्ट्रक्चर नोड लिखें।

  • एक ही आकार की दो लिंक की गई सूचियां बनाएं।

  • लिंक की गई सूची पर पुनरावृति करें।

    • दो लिंक्ड सूचियों के नोड्स से अधिकतम संख्या ज्ञात करें।

    • अधिकतम संख्या के साथ एक नया नोड बनाएं।

    • नई लिंक की गई सूची में नया नोड जोड़ें।

  • नई लिंक की गई सूची को प्रिंट करें।

उदाहरण

आइए कोड देखें।

#include <bits/stdc++.h>
using namespace std;
struct Node {
   int data;
   Node* next;
};
void insertNewNode(Node** root, int data) {
   Node *ptr, *temp;
   temp = new Node;
   temp->data = data;
   temp->next = NULL;
   if (*root == NULL) {
      *root = temp;
   }
   else {
      ptr = *root;
      while (ptr->next != NULL) {
         ptr = ptr->next;
      }
      ptr->next = temp;
   }
}
Node* getNewLinkedList(Node* root1, Node* root2) {
   Node *ptr1 = root1, *ptr2 = root2, *ptr;
   Node *root = NULL, *temp;
   while (ptr1 != NULL) {
      temp = new Node;
      temp->next = NULL;
      if (ptr1->data < ptr2->data) {
         temp->data = ptr2->data;
      }
      else {
         temp->data = ptr1->data;
      }
      if (root == NULL) {
         root = temp;
      }
      else {
         ptr = root;
         while (ptr->next != NULL) {
            ptr = ptr->next;
         }
         ptr->next = temp;
      }
      ptr1 = ptr1->next;
      ptr2 = ptr2->next;
   }
   return root;
}
void printLinkedList(Node* root) {
   while (root != NULL) {
      cout << root->data << "->";
      root = root->next;
   }
   cout << "NULL" << endl;
}
int main() {
   Node *root1 = NULL, *root2 = NULL, *root = NULL;
   insertNewNode(&root1, 1);
   insertNewNode(&root1, 2);
   insertNewNode(&root1, 3);
   insertNewNode(&root1, 4);
   cout << "First Linked List: ";
   printLinkedList(root1);
   insertNewNode(&root2, 0);
   insertNewNode(&root2, 5);
   insertNewNode(&root2, 2);
   insertNewNode(&root2, 6);
   cout << "Second Linked List: ";
   printLinkedList(root2);
   root = getNewLinkedList(root1, root2);
   cout << "New Linked List: ";
   printLinkedList(root);
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

First Linked List: 1->2->3->4->NULL
Second Linked List: 0->5->2->6->NULL
New Linked List: 1->5->3->6->NULL

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।


  1. सी ++ प्रोग्राम क्रमबद्ध रूप से डबल लिंक्ड लिस्ट को लागू करने के लिए

    डेटा संरचना में, लिंक्ड सूची डेटा तत्वों का एक रैखिक संग्रह है। सूची के प्रत्येक तत्व या नोड में दो आइटम होते हैं - डेटा और अगले नोड का संदर्भ। अंतिम नोड में शून्य का संदर्भ है। एक लिंक की गई सूची में प्रवेश बिंदु को सूची का प्रमुख कहा जाता है। सर्कुलर डबल लिंक्ड लिस्ट में, दो लगातार तत्व पिछले और

  1. सर्कुलर डबल लिंक्ड लिस्ट को लागू करने के लिए C++ प्रोग्राम

    डेटा संरचना में लिंक सूची डेटा तत्वों का एक रैखिक संग्रह है। सूची के प्रत्येक तत्व या नोड में दो आइटम होते हैं - डेटा और अगले नोड का संदर्भ। अंतिम नोड में शून्य का संदर्भ है। एक लिंक्ड सूची में प्रवेश बिंदु को सूची का प्रमुख कहा जाता है। सर्कुलर डबल लिंक्ड लिस्ट में दो लगातार तत्व पिछले और अगले पॉइ

  1. सर्कुलर सिंगल लिंक्ड लिस्ट को लागू करने के लिए C++ प्रोग्राम

    सर्कुलर सिंगल लिंक्ड लिस्ट एक प्रकार की डेटा संरचना है जो नोड्स से बनी होती है जो सेल्फ रेफरेंशियल स्ट्रक्चर का उपयोग करके बनाई जाती है। इनमें से प्रत्येक नोड में दो भाग होते हैं, अर्थात् डेटा और अगली सूची नोड का संदर्भ। संपूर्ण लिंक की गई सूची तक पहुँचने के लिए केवल पहली सूची नोड के संदर्भ की आवश्