এই টিউটোরিয়ালে, আমরা শিখব কিভাবে একটি একক লিঙ্ক করা তালিকা থেকে সমস্ত প্রাইম নোড মুছে ফেলতে হয়।
আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷
৷-
ডেটা এবং পরবর্তী পয়েন্টার দিয়ে struct লিখুন।
-
এককভাবে লিঙ্ক করা তালিকায় নোড সন্নিবেশ করার জন্য একটি ফাংশন লিখুন।
-
ডামি ডেটা দিয়ে এককভাবে লিঙ্ক করা তালিকা শুরু করুন।
-
এককভাবে লিঙ্ক করা তালিকার উপর পুনরাবৃত্তি করুন. বর্তমান নোড ডেটা x-এর চেয়ে বড় কি না তা খুঁজুন।
-
যদি বর্তমান ডেটা x এর চেয়ে বেশি হয়, তাহলে নোড মুছে দিন।
-
নোড মুছে ফেলার জন্য একটি ফাংশন লিখুন। নোড মুছে ফেলার সময় নিম্নলিখিত তিনটি ক্ষেত্রে বিবেচনা করুন।
-
যদি নোডটি হেড নোড হয়, তাহলে মাথাটি পরবর্তী নোডে নিয়ে যান৷
-
যদি নোডটি মধ্যবর্তী নোড হয়, তাহলে পরবর্তী নোডটিকে আগের নোডের সাথে লিঙ্ক করুন
-
যদি নোডটি শেষ নোড হয়, তাহলে পূর্ববর্তী নোড লিঙ্কটি সরিয়ে দিন।
-
উদাহরণ
আসুন কোডটি দেখি।
#include <bits/stdc++.h>
using namespace std;
struct Node {
int data;
Node* next;
};
Node* getNewNode(int data) {
Node* newNode = new Node;
newNode->data = data;
newNode->next = NULL;
return newNode;
}
void deleteGreaterNodes(Node** head_ref, int x) {
Node *temp = *head_ref, *prev;
if (temp != NULL && temp->data > x) {
*head_ref = temp->next;
free(temp);
temp = *head_ref;
}
while (temp != NULL) {
while (temp != NULL && temp->data <= x) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) {
return;
}
prev->next = temp->next;
delete temp;
temp = prev->next;
}
}
void printLinkedList(Node* head) {
while (head) {
cout << head->data << " -> ";
head = head->next;
}
}
int main() {
Node* head = getNewNode(1);
head->next = getNewNode(2);
head->next->next = getNewNode(3);
head->next->next->next = getNewNode(4);
head->next->next->next->next = getNewNode(5);
head->next->next->next->next->next = getNewNode(6);
int x = 3;
cout << "Linked List before deletion:" << endl;
printLinkedList(head);
deleteGreaterNodes(&head, x);
cout << "\nLinked List after deletion:" << endl;
printLinkedList(head);
return 0;
} আউটপুট
আপনি যদি উপরের প্রোগ্রামটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
Linked List before deletion: 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> Linked List after deletion: 1 -> 2 -> 3 ->
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।