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

C++ प्रोग्राम किसी दिए गए सिंगल लिंक्ड लिस्ट में पहले नोड को डिलीट करने के लिए

एक लिंक्ड सूची एक रैखिक डेटा संरचना है जिसमें कई नोड्स होते हैं जो एक दूसरे से जुड़े होते हैं। प्रत्येक नोड में दो फ़ील्ड होते हैं - डेटा फ़ील्ड और अगले नोड का पता।

आइए मान लें कि हमारे पास एक एकल लिंक की गई सूची है और हमें इस लिंक की गई सूची से पहले नोड को हटाना होगा। उदाहरण के लिए,

इनपुट 1 -4 → 3 → 2 → 1

आउटपुट -3 → 2 → 1 →

स्पष्टीकरण - '4' दी गई सिंगल लिंक्ड लिस्ट में पहला नोड है। पहला नोड हटाने के बाद, लिंक की गई सूची 3→2→1 हो जाएगी।

इनपुट 2 − 1 → 2 → 3 →

आउटपुट − 2 → 3 →

स्पष्टीकरण - पहले नोड '1' को हटाने के बाद, लिंक की गई सूची 2 → 3 होगी।

इस समस्या को हल करने का तरीका

प्रारंभ में, हमारे पास एक लिंक्ड सूची है जिसमें नोड्स होते हैं। प्रत्येक नोड में अगले नोड का डेटा और पता होता है। लिंक की गई सूची में डेटा डालने के बाद, हम पहले नोड को हटाने के लिए एक फ़ंक्शन बनाएंगे।

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

  • एक फ़ंक्शन deleteAthead(node*&head) पॉइंटर को सिर पर ले जाता है और लिंक की गई सूची के पहले नोड को हटा देता है।

  • एक अस्थायी पॉइंटर बनाएं जो शुरू में सिर की ओर इशारा करे।

  • सिर अगले नोड पर चला जाता है।

  • अस्थायी सूचक हटाएं।

  • लिंक की गई सूची लौटाएं।

उदाहरण

#include<iostream>
using namespace std;
int main(){
class node{
   public:
      int data;
      node*next;
      node(int d){
         data=d;
         node*next=NULL;
      }
};
void insertAtFirstNode(node*&head, int data){
   node*n= new node(data);
   n->next= head;
   head=n;
}
void print(node*head){
   while(head!=NULL){
      cout<<head->data<<"->";
      head=head->next;
   }
   cout<<endl;
}
void deleteAtFirst(node*&head){
   if(head==NULL){
      return;
   }
   node*temp=head;
   head= head->next;
   delete temp;
   return;
}
int main(){
   node*head= NULL;
   insertAtFirstNode(head,1);
   insertAtFirstNode(head,2);
   insertAtFirstNode(head,3);
   insertAtFirstNode(head,4);
   deleteAtFirst(head);
   print(head);
}

आउटपुट

उपरोक्त कोड को चलाने से आउटपुट इस प्रकार उत्पन्न होगा,

3 → 2 → 1 →

चूंकि दी गई एकल लिंक की गई सूची 4 → 3 → 2 → 1 → है, पहले नोड को हटाने के बाद जो 4 है, लिंक की गई सूची बन जाएगी, 3 → 2 → 1 →


  1. C++ में दी गई लिंक्ड सूची के पहले k नोड्स का गुणनफल खोजें

    विचार करें कि हमारे पास एक लिंक्ड सूची में कुछ तत्व हैं। हमें तत्वों की पहली k संख्या का गुणन परिणाम ज्ञात करना है। k का मान भी दिया गया है। तो अगर सूची [5, 7, 3, 5, 6, 9] और के =3 जैसी है, तो परिणाम 5 * 7 * 3 =105 होगा। प्रक्रियाएं सीधे आगे हैं। हम केवल बाईं ओर से शुरू होने वाले वर्तमान तत्व को पढ

  1. सर्कुलर सिंगल लिंक्ड लिस्ट को लागू करने के लिए C++ प्रोग्राम

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

  1. C++ प्रोग्राम सिंगल लिंक्ड लिस्ट को लागू करने के लिए

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