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

C++ का उपयोग करके लिंक्ड लिस्ट के पहले नोड को हटाना

एक लिंक्ड लिस्ट दी गई है, हमें इसका पहला तत्व हटाना है और नई लिस्ट के हेड का पॉइंटर लौटाना है।

इनपुट: 1 -> 2 -> 3 -> 4 -> 5 -> NULL
आउटपुट: 2 -> 3 -> 4 -> 5 -> NULL

इनपुट: 2 -> 4 -> 6 -> 8 -> 33 -> 67 -> NULL
आउटपुट: 4 -> 6 -> 8 -> 33 -> 67 -> NULL

दिए गए समस्या में, हमें लिस्ट के पहले नोड को हटाना है और अपने हेड को दूसरे तत्व पर ले जाना है और हेड लौटाना है।

समाधान खोजने का दृष्टिकोण

इस समस्या में, हम हेड को अगले स्थान पर ले जा सकते हैं और फिर पिछले नोड को फ्री कर सकते हैं।

उदाहरण

#include <iostream>
using namespace std;

/* लिंक लिस्ट नोड */
struct Node {
   int data;
   struct Node* next;
};

void push(struct Node** head_ref, int new_data) {
   // लिस्ट में डेटा डालना
   struct Node* new_node = new Node;
   new_node->data = new_data;
   new_node->next = (*head_ref);
   (*head_ref) = new_node;
}

int main() {
   Node* head = NULL;
   push(&head, 12);
   push(&head, 29);
   push(&head, 11);
   push(&head, 23);
   push(&head, 8);
   
   auto temp = head; // temp हेड बन जाता है
   head = head->next; // हमारा हेड अगला तत्व बन जाता है
   delete temp; // हम temp को डिलीट करते हैं यानी पहला तत्व
   
   for (temp = head; temp != NULL; temp = temp->next) // लिस्ट प्रिंट करना
      cout << temp->data << " ";
   
   return 0;
}

आउटपुट

23 11 29 12

उपरोक्त कोड की व्याख्या

हमें बस इस प्रोग्राम में हेड को उसके अगले तत्व पर शिफ्ट करना है और फिर पिछले तत्व को डिलीट करना है और फिर नई लिस्ट प्रिंट करना है। दिए गए प्रोग्राम की समग्र समय जटिलता O(1) है जिसका मतलब है कि हमारा प्रोग्राम दिए गए इनपुट पर निर्भर नहीं करता, और यह सबसे अच्छी जटिलता है जिसे हम प्राप्त कर सकते हैं।

निष्कर्ष

इस लेख में, हम लिंक्ड लिस्ट के पहले नोड को हटाने की समस्या को हल करते हैं। हमने इस समस्या के लिए C++ प्रोग्राम और पूरा दृष्टिकोण भी सीखा। हम इसी प्रोग्राम को अन्य भाषाओं जैसे C, Java, Python, और अन्य भाषाओं में लिख सकते हैं। आशा है कि आपको यह लेख उपयोगी लगा।

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

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

  1. - C++ में लिंक्ड लिस्ट का भाग उलटना (Reverse Linked List II)

    मान लीजिए हमारे पास एक लिंक्ड लिस्ट है। हमें स्थिति m से n तक के नोड्स को उलटना है। हमें इसे एक ही पास (one pass) में करना है। यदि लिस्ट [1,2,3,4,5] है और m = 2, n = 4, तो परिणाम [1,4,3,2,5] होगा। आइए चरण देखें: दो विधियां होंगी: reverseN() और reverseBetween()। reverseBetween() मुख्य विधि के रूप म

  1. - C# में LinkedList में नोड की पहली घटना हटाना

    नोड्स के साथ हमारा LinkedList निम्न है: string[] students = { Katie, Jennifer, Amy, Vera }; LinkedList<string> list = new LinkedList<string>(students); अब Vera स्ट्रिंग तत्व वाले नोड को हटाएं। इसके लिए Remove() विधि का उपयोग करें: list.Remove(Vera); पूर्ण कोड using System; using System.C