Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में लिंक्ड सूची के वैकल्पिक नोड्स हटाएं


समस्या विवरण

इस ट्यूटोरियल में, हम सीखेंगे कि सिंगली लिंक्ड सूची से वैकल्पिक नोड्स को कैसे हटाया जाए।

हल करने के चरण

  • data और next पॉइंटर के साथ स्ट्रक्चर लिखें।
  • सिंगली लिंक्ड सूची में नोड डालने का फंक्शन लिखें।
  • डमी डेटा के साथ सिंगली लिंक्ड सूची प्रारंभ करें।
  • सिंगली लिंक्ड सूची पर पुनरावृति करें।
  • पिछले नोड को बनाए रखते हुए वैकल्पिक नोड को हटाएं।
  • नोड हटाने का फंक्शन लिखें। नोड हटाते समय निम्न तीन मामलों पर विचार करें:
    • यदि नोड हेड नोड है, तो हेड को अगले नोड पर ले जाएं।
    • यदि नोड मध्य नोड है, तो अगले नोड को पिछले नोड से लिंक करें।
    • यदि नोड अंतिम नोड है, तो पिछले नोड लिंक को हटाएं।

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 << "हटाने से पहले लिंक्ड सूची:" << endl;
    printLinkedList(head);
    deleteAlternateNodes(head);
    cout << "\nहटाने के बाद लिंक्ड सूची:" << endl;
    printLinkedList(head);
    return 0;
}

आउटपुट

हटाने से पहले लिंक्ड सूची: 6 -> 5 -> 4 -> 3 -> 2 -> 1 ->
हटाने के बाद लिंक्ड सूची: 6 -> 4 -> 2 ->

निष्कर्ष

यदि ट्यूटोरियल में कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में उल्लेख करें।

  1. C++ में लिंक्ड सूची के वैकल्पिक नोड्स का योग C++ में लिंक्ड सूची के वैकल्पिक नोड्स का योग

    इस समस्या में, हमें एक लिंक्ड सूची दी गई है। हमारा कार्य लिंक्ड सूची के वैकल्पिक नोड्स का योग प्रिंट करना है। लिंक्ड सूची डेटा संरचनाओं का एक क्रम है जो लिंक्स के माध्यम से एक साथ जुड़े हुए हैं। अब, आइए समस्या पर वापस आते हैं। यहां, हम लिंक्ड सूची के वैकल्पिक नोड्स को जोड़ेंगे। इसका मतलब है हम

  1. C++ में सर्कुलर लिंक्ड लिस्ट में नोड्स की गिनती करें C++ में सर्कुलर लिंक्ड लिस्ट में नोड्स की गिनती करें

    हमें नोड्स के साथ एक सर्कुलर लिंक्ड लिस्ट दी गई है और कार्य सर्कुलर लिंक्ड लिस्ट में मौजूद नोड्स की संख्या की गणना करना है। सर्कुलर लिंक्ड लिस्ट लिंक्ड लिस्ट का एक प्रकार है जिसमें पहला तत्व अंतिम तत्व की ओर इंगित करता है और अंतिम तत्व पहले तत्व की ओर इंगित करता है। सिंगली लिंक्ड लिस्ट और डबली लिं

  1. C++ में पुनरावृत्ति का उपयोग करके लिंक्ड लिस्ट के वैकल्पिक नोड्स प्रिंट करें C++ में पुनरावृत्ति का उपयोग करके लिंक्ड लिस्ट के वैकल्पिक नोड्स प्रिंट करें

    लिंक्ड लिस्ट एक रैखिक डेटा संरचना है जो तत्वों को गैर-सन्निहित मेमोरी स्थानों में संग्रहीत करती है। प्रत्येक तत्व में लिंक्ड लिस्ट के अगले तत्व का एक पॉइंटर होता है। उदाहरण - इस समस्या में, हमें एक लिंक्ड लिस्ट दी गई है और हमें इस लिंक्ड लिस्ट के तत्वों को प्रिंट करना है लेकिन केवल वैकल्पिक तत्वों