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

C++-এ লিংকড লিস্ট থেকে অল্টারনেট নোড ডিলিট করা


এই টিউটোরিয়ালে আমরা শিখব কিভাবে সিংলি লিংকড লিস্ট থেকে সব প্রাইম নোড ডিলিট করা যায়।

সমস্যা সমাধানের ধাপগুলো দেখে নিই।

  • ডেটা এবং নেক্সট পয়েন্টার সহ স্ট্রাক্ট লিখুন।

  • সিংলি লিংকড লিস্টে নোড ইনসার্ট করার ফাংশন লিখুন।

  • ডামি ডেটা দিয়ে সিংলি লিংকড লিস্ট আরম্ভিক করুন।

  • সিংলি লিংকড লিস্ট ওভার ইটারেট করুন।

  • পূর্বের নোড মেইনটেইন করে অল্টারনেট নোড ডিলিট করুন।

  • নোড ডিলিট করার ফাংশন লিখুন। নোড ডিলিট করার সময় নিচের তিনটি কেস বিবেচনা করুন।

    • যদি নোড হেড নোড হয়, তবে হেডকে নেক্সট নোডে সরান।

    • যদি নোড মিডল নোড হয়, তবে নেক্সট নোডকে পূর্বের নোডের সাথে লিংক করুন।

    • যদি নোড এন্ড নোড হয়, তবে পূর্বের নোডের লিংক সরান। কোডটি দেখে নিই।

উদাহরণ কোড

#include <bits/stdc++.h> 
using namespace std; 

struct Node { 
    int data; 
    Node *next; 
}; 

void deleteAlternateNodes(Node *head) { 
    if (head == NULL) 
        return; 
    
    Node *prev = head; 
    Node *node = head->next; 
    
    while (prev != NULL && node != NULL) { 
        prev->next = node->next; 
        free(node); 
        prev = prev->next; 
        
        if (prev != NULL) { 
            node = prev->next; 
        } 
    } 
} 

void insertNode(Node** head_ref, int new_data) { 
    Node* new_node = new Node(); 
    new_node->data = new_data; 
    new_node->next = (*head_ref); 
    (*head_ref) = new_node; 
} 

void printLinkedList(Node *node) { 
    while (node != NULL) { 
        cout << node->data << " -> "; 
        node = node->next; 
    } 
} 

int main() { 
    Node* head = NULL; 
    insertNode(&head, 1); 
    insertNode(&head, 2); 
    insertNode(&head, 3); 
    insertNode(&head, 4); 
    insertNode(&head, 5); 
    insertNode(&head, 6); 
    
    cout << "Linked List before deletion:" << endl; 
    printLinkedList(head); 
    
    deleteAlternateNodes(head); 
    
    cout << "\nLinked List after deletion:" << endl; 
    printLinkedList(head); 
    
    return 0; 
}

আউটপুট

যদি আপনি উপরের প্রোগ্রামটি এক্সিকিউট করেন, তবে নিচের রেজাল্ট পাবেন।

Linked List before deletion: 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> 
Linked List after deletion: 6 -> 4 -> 2 ->

উপসংহার

টিউটোরিয়ালে যদি কোনো কোয়েরি থাকে, তবে কমেন্ট সেকশনে উল্লেখ করুন।


  1. মাল্টিলেভেল লিংকড লিস্ট ফ্ল্যাটেন করা (C++)

  2. সি++-এ লিংকড লিস্টের অল্টারনেট নোডগুলোর যোগফল

  3. C++-এ সার্কুলার লিঙ্কড লিস্টে নোড গণনা

  4. C++-এ লিংকড লিস্টের אל্টারনেট নোড প্রিন্ট করুন (রিকার্সন ছাড়া)