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

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

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

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

डबल लिंक्ड लिस्ट को लागू करने का कार्यक्रम इस प्रकार दिया गया है।

उदाहरण

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node *prev;
   struct Node *next;
};
struct Node* head = NULL;
void insert(int newdata) {
   struct Node* newnode = (struct Node*) malloc(sizeof(struct Node));
   newnode->data = newdata;
   newnode->prev = NULL;
   newnode->next = head;
   if(head != NULL)
   head->prev = newnode ;
   head = newnode;
}
void display() {
   struct Node* ptr;
   ptr = head;
   while(ptr != NULL) {
      cout<< ptr->data <<" ";
      ptr = ptr->next;
   }
}
int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The doubly linked list is: ";
   display();
   return 0;
}

आउटपुट

The doubly linked list is: 9 2 7 1 3

उपरोक्त कार्यक्रम में, संरचना नोड डबल लिंक्ड सूची नोड बनाता है। इसमें डेटा और अगले और पिछले लिंक्ड लिस्ट नोड के लिए एक पॉइंटर होता है। यह इस प्रकार दिया गया है।

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

फंक्शन इन्सर्ट () डेटा को डबल लिंक्ड लिस्ट की शुरुआत में इन्सर्ट करता है। यह एक नया नोड बनाता है और न्यूनोड के डेटा क्षेत्र में संख्या सम्मिलित करता है। फिर न्यूनोड में पिछला पॉइंटर न्यूल को इंगित करता है क्योंकि इसे शुरुआत में दर्ज किया जाता है और अगला पॉइंटर सिर को इंगित करता है। यदि हेड न्यूल नहीं है तो हेड का पिछला पॉइंटर न्यूनोड की ओर इशारा करता है। अंत में हेड न्यूनोड है यानी लिंक्ड लिस्ट वहीं से शुरू होती है। यह नीचे दिया गया है।

void insert(int newdata) {
   struct Node* newnode = (struct Node*) malloc(sizeof(struct Node));
   newnode->data = newdata;
   newnode->prev = NULL;
   newnode->next = head;
   if(head != NULL)
   head->prev = newnode ;
   head = newnode;
}

फ़ंक्शन डिस्प्ले () पूरी दोहरी लिंक की गई सूची को प्रदर्शित करता है। पहला पीटीआर सिर की ओर इशारा करता है। फिर इसे लगातार अगले नोड तक भेजा जाता है जब तक कि नोड्स के सभी डेटा मान मुद्रित नहीं हो जाते। यह नीचे दिया गया है।

void display() {
   struct Node* ptr;
   ptr = head;
   while(ptr != NULL) {
      cout<< ptr->data <<" ";
      ptr = ptr->next;
   }
}

फ़ंक्शन मुख्य () में, सम्मिलित () को कॉल करके पहले विभिन्न मूल्यों को दोहरी लिंक की गई सूची में डाला जाता है। फिर डबल लिंक्ड लिस्ट प्रदर्शित होती है। यह नीचे दिया गया है।

int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The doubly linked list is: ";
   display();
   return 0;
}

  1. सी++ में डबल लिंक्ड लिस्ट का आकार खोजने का कार्यक्रम

    इस समस्या में हमें एक डबल लिंक्ड लिस्ट दी जाती है। हमारा काम C++ में डबली लिंक्ड लिस्ट का आकार खोजने के लिए एक प्रोग्राम बनाना है। डबल लिंक्ड लिस्ट एक विशेष प्रकार की लिंक्ड लिस्ट है जिसमें सिंगल लिंक्ड लिस्ट की तुलना में आगे और पीछे दोनों तरह से नेविगेशन संभव है। डबल लिंक्ड सूचियों की अवधारणा को

  1. सी ++ में डबल लिंक्ड सूची का उपयोग कर प्राथमिकता कतार

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

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

    एक ग्राफ की आसन्न सूची प्रतिनिधित्व लिंक्ड सूची प्रतिनिधित्व है। इस निरूपण में हमारे पास सूचियों की एक सरणी है सरणी का आकार V है। यहाँ V शीर्षों की संख्या है। दूसरे शब्दों में, हम कह सकते हैं कि हमारे पास विभिन्न सूचियों के V नंबर को संग्रहीत करने के लिए एक सरणी है। यदि कोई सूची शीर्षलेख u वर्टेक्स