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

দুটি লিংকড লিস্ট থেকে גדולতম এলিমেন্ট নিয়ে নতুন লিংকড লিস্ট তৈরি (C++)

এই টিউটোরিয়ালে আমরা দুটি লিংকড লিস্ট থেকে একটি নতুন লিংকড লিস্ট তৈরি করার প্রোগ্রাম লিখব।

একই সাইজের দুটি লিংকড লিস্ট দেওয়া আছে। আমাদের কাজ হল দুটি লিস্টের প্রতিটি নোড থেকে বৃহত্তম মান নিয়ে একটি নতুন লিংকড লিস্ট তৈরি করা।

সমাধানের ধাপসমূহ

  • নোডের জন্য struct লিখুন।
  • একই সাইজের দুটি লিংকড লিস্ট তৈরি করুন।
  • লিংকড লিস্টের ওপর ইটারেট করুন।
    • দুটি লিস্টের নোড থেকে বৃহত্তম মান বের করুন।
    • বৃহত্তম মান দিয়ে নতুন নোড তৈরি করুন।
    • নতুন নোডটি নতুন লিংকড লিস্টে যোগ করুন।
  • নতুন লিংকড লিস্ট প্রিন্ট করুন।

উদাহরণ কোড

#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. C++-এ লিংকড লিস্ট র‍্যান্ডম নোড

  2. C++ প্রোগ্রাম: সোর্টেড সার্কুলারলি ডাবলি লিঙ্কড লিস্ট বাস্তবায়ন

  3. C++ প্রোগ্রাম: সার্কুলার ডাবলি লিঙ্কড লিস্ট বাস্তবায়ন

  4. সার্কুলার সিংলি লিঙ্কড লিস্ট বাস্তবায়নের C++ প্রোগ্রাম