এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যা প্রদত্ত লিঙ্ক করা তালিকা থেকে একটি নতুন লিঙ্কযুক্ত তালিকা তৈরি করে।
আমরা একই আকারের দুটি লিঙ্কযুক্ত তালিকা দিয়েছি এবং আমাদের দুটি লিঙ্ক করা তালিকা থেকে সর্বাধিক সংখ্যা সহ একটি নতুন লিঙ্কযুক্ত তালিকা তৈরি করতে হবে।
আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷
৷-
একটি স্ট্রাকট নোড লিখুন।
-
একই আকারের দুটি লিঙ্কযুক্ত তালিকা তৈরি করুন।
-
লিঙ্ক করা তালিকার উপর পুনরাবৃত্তি করুন।
-
দুটি লিঙ্ক করা তালিকা নোড থেকে সর্বাধিক সংখ্যা খুঁজুন।
-
সর্বাধিক সংখ্যা সহ একটি নতুন নোড তৈরি করুন৷
৷ -
নতুন লিঙ্ক করা তালিকায় নতুন নোড যোগ করুন।
-
-
নতুন লিঙ্ক করা তালিকা প্রিন্ট করুন।
উদাহরণ
আসুন কোডটি দেখি।
#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
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।