এই টিউটোরিয়ালে আমরা দুটি লিংকড লিস্ট থেকে একটি নতুন লিংকড লিস্ট তৈরি করার প্রোগ্রাম লিখব।
একই সাইজের দুটি লিংকড লিস্ট দেওয়া আছে এবং আমাদের لتلك দুটি লিস্ট থেকে প্রতিটি পজিশনে সর্বোচ্চ সংখ্যা নিয়ে একটি নতুন লিংকড লিস্ট তৈরি করতে হবে।
সমস্যা সমাধানের ধাপগুলো:
নোডের জন্য একটি struct লিখুন।
একই সাইজের দুটি লিংকড লিস্ট তৈরি করুন।
লিংকড লিস্টের ওপর ইটারেট করুন।
দুটি লিংকড লিস্টের নোড থেকে সর্বোচ্চ সংখ্যা বের করুন।
সর্বোচ্চ সংখ্যা দিয়ে একটি নতুন নোড তৈরি করুন।
নতুন নোডটিকে নতুন লিংকড লিস্টে যোগ করুন।
নতুন লিংকড লিস্ট প্রিন্ট করুন।
উদাহরণ
নিচে কোডটি দেওয়া হলো:
#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
উপসংহার
টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।