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

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

इस समस्या में हमें एक डबल लिंक्ड लिस्ट दी जाती है। हमारा काम C++ में डबली लिंक्ड लिस्ट का आकार खोजने के लिए एक प्रोग्राम बनाना है।

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

  • लिंक - लिंक की गई सूची का प्रत्येक लिंक एक तत्व नामक डेटा संग्रहीत कर सकता है।

  • अगला - लिंक की गई सूची के प्रत्येक लिंक में अगले लिंक का लिंक होता है जिसे अगला कहा जाता है।

  • पिछला − किसी लिंक की गई सूची के प्रत्येक लिंक में पिछले लिंक का लिंक होता है जिसे पिछला कहा जाता है।

  • लिंक्ड लिस्ट - एक लिंक्ड लिस्ट में पहले लिंक का कनेक्शन लिंक होता है जिसे फर्स्ट कहा जाता है और आखिरी लिंक जिसे लास्ट कहा जाता है।

एक डबल लिंक्ड सूची का प्रतिनिधित्व -

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

समस्या का विवरण - हमें उपरोक्त प्रकार की एक डबल लिंक्ड सूची दी जाएगी। और हम इसका आकार (लंबाई) पाएंगे।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

the above linked list A <-> B <-> C.

आउटपुट

3

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

डबल लिंक की गई सूची का आकार खोजने के लिए, हमें डबल लिंक की गई सूची को पार करना होगा और लंबाई के साथ लंबाई का ट्रैक रखना होगा।

एल्गोरिदम

आरंभ करें -लंबाई =0, *अस्थायी =सिर

  • चरण 1 - सूची को पार करें यानी अस्थायी !=NULL तक करें।
    • चरण 1.1 − लंबाई बढ़ाएं, लंबाई++
    • चरण 1.2 - पॉइंटर अपडेट करें, अस्थायी =अस्थायी -> अगला।
  • चरण 2 - प्रिंट लंबाई।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम

उदाहरण

#include <iostream>
using namespace std;
struct doublyLL {
   char val;
   struct doublyLL *next;
   struct doublyLL *prev;
};
void insertNode(struct doublyLL** head_ref, int value){
   struct doublyLL* new_node = new doublyLL;
   new_node->val = value;
   new_node->next = (*head_ref);
   new_node->prev = NULL;
   if ((*head_ref) != NULL)
      (*head_ref)->prev = new_node ;
      (*head_ref) = new_node;
}
int calcDLLSize(struct doublyLL *temp) {
   int length = 0;
   while (temp != NULL){
      temp = temp->next;
      length++;
   }
   return length;
}
int main(){
   struct doublyLL* head = NULL;
   insertNode(&head, 'A');
   insertNode(&head, 'H');
   insertNode(&head, 'E');
   insertNode(&head, 'K');
   insertNode(&head, 'M');
   insertNode(&head, 'S');
   cout<<"The size of Doubly Linked List is "<<calcDLLSize(head);
   return 0;
}

आउटपुट

The size of Doubly Linked List is 6

  1. सी ++ में लिंक्ड सूची में लूप की लंबाई पाएं

    इस समस्या में, हमें एक लिंक की गई सूची दी जाती है जिसमें लूप हो सकते हैं। हमारा कार्य लिंक्ड सूची में लूप की लंबाई ज्ञात करना है। समस्या का विवरण: हमें लूप में नोड्स की संख्या गिनने की आवश्यकता है यदि इसमें लूप है अन्यथा -1 लौटाएं। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: लिंक्ड-लिस्

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

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

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

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