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

C++ का उपयोग करके लिंक की गई सूची का पहला नोड निकालें

एक लिंक की गई सूची को देखते हुए, हमें इसके पहले तत्व को हटाना होगा और पॉइंटर को नई सूची के शीर्ष पर वापस करना होगा।

Input : 1 -> 2 -> 3 -> 4 -> 5 -> NULL
Output : 2 -> 3 -> 4 -> 5 -> NULL

Input : 2 -> 4 -> 6 -> 8 -> 33 -> 67 -> NULL
Output : 4 -> 6 -> 8 -> 33 -> 67 -> NULL

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

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

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

उदाहरण

#include <iostream>
using namespace std;
/* Link list node */
struct Node {
   int data;
   struct Node* next;
};
void push(struct Node** head_ref, int new_data) { // pushing the data into the list
   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 becomes head
   head = head -> next; // our head becomes the next element
   delete temp; // we delete temp i.e. the first element
   for (temp = head; temp != NULL; temp = temp->next) // printing the list
      cout << temp->data << " ";
   return 0;
}

आउटपुट

23 11 29 12

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

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

निष्कर्ष

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


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

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

  1. C++ में रिवर्स लिंक्ड लिस्ट II

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

  1. सी # प्रोग्राम एक लिंक्ड सूची में नोड की पहली घटना को दूर करने के लिए

    नोड्स के साथ हमारी लिंक्डलिस्ट सूची निम्नलिखित है। स्ट्रिंग [] छात्र ={केटी, जेनिफर, एमी, वेरा}; लिंक्डलिस्ट सूची =नई लिंक्डलिस्ट (छात्र); अब हम स्ट्रिंग एलिमेंट वेरा के साथ एक नोड को हटाते हैं। उसके लिए, निकालें () विधि का उपयोग करें। list.Remove(Vera); उदाहरण सिस्टम का उपयोग करना;सिस्टम का उपय