इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो दी गई लिंक्ड लिस्ट से एक नई लिंक्ड लिस्ट बनाता है।
हमने एक ही आकार की दो लिंक्ड सूचियाँ दी हैं और हमें दो लिंक्ड सूचियों से एक नई लिंक्ड सूची बनानी है, जिसमें दो लिंक्ड सूचियों से अधिकतम संख्याएँ हों।
आइए समस्या को हल करने के लिए चरणों को देखें।
-
एक स्ट्रक्चर नोड लिखें।
-
एक ही आकार की दो लिंक की गई सूचियां बनाएं।
-
लिंक की गई सूची पर पुनरावृति करें।
-
दो लिंक्ड सूचियों के नोड्स से अधिकतम संख्या ज्ञात करें।
-
अधिकतम संख्या के साथ एक नया नोड बनाएं।
-
नई लिंक की गई सूची में नया नोड जोड़ें।
-
-
नई लिंक की गई सूची को प्रिंट करें।
उदाहरण
आइए कोड देखें।
#include <bits/stdc++.h> using namespace std; struct Node { int data; Node* next; }; void insertNewNode(Node** root, int item) { Node *ptr, *temp; temp = new Node; temp->data = item; temp->next = NULL; if (*root == NULL) { *root = temp; } else { ptr = *root; while (ptr->next != NULL) { ptr = ptr->next; } ptr->next = temp; } } void printLinkedList(Node* root) { while (root != NULL) { cout << root->data << " -> "; root = root->next; } cout << "NULL" << endl; } Node* generateNewLinkedList(Node* root1, Node* root2) { Node *ptr1 = root1, *ptr2 = root2; Node* root = NULL; while (ptr1 != NULL) { int currentMax = ((ptr1->data < ptr2->data) ? ptr2->data : ptr1->data); if (root == NULL) { Node* temp = new Node; temp->data = currentMax; temp->next = NULL; root = temp; } else { insertNewNode(&root, currentMax); } ptr1 = ptr1->next; ptr2 = ptr2->next; } return root; } int main() { Node *root1 = NULL, *root2 = NULL, *root = NULL; insertNewNode(&root1, 1); insertNewNode(&root1, 2); insertNewNode(&root1, 3); insertNewNode(&root1, 4); insertNewNode(&root2, 3); insertNewNode(&root2, 1); insertNewNode(&root2, 2); insertNewNode(&root2, 4); root = generateNewLinkedList(root1, root2); printLinkedList(root); return 0; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
3 -> 2 -> 3 -> 4 -> NULL
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।