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