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