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

C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढना


इस समस्या में, हमें एक डौबली लिंक्ड लिस्ट दी गई है। हमारा कार्य C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढने के लिए एक प्रोग्राम बनाना है।

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

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

समस्या विवरण

हमें उपरोक्त प्रकार की एक डौबली लिंक्ड लिस्ट दी जाएगी। और हम उसका आकार (लंबाई) ढूंढेंगे।

उदाहरण

इनपुट: उपरोक्त लिंक्ड लिस्ट A <-> B <-> C.

आउटपुट: 3

हल करने का दृष्टिकोण

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

एल्गोरिदम

इनिशियलाइज़ - length = 0, *temp = head

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

उदाहरण (C++ कोड)

#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. C++ में लिंक्ड लिस्ट में लूप की लंबाई ढूंढें C++ में लिंक्ड लिस्ट में लूप की लंबाई ढूंढें

    इस समस्या में, हमें एक लिंक्ड लिस्ट दी गई है जिसमें लूप हो सकते हैं। हमारा कार्य लिंक्ड लिस्ट में लूप की लंबाई ढूंढना है। समस्या विवरण: हमें लूप में नोड्स की संख्या गिननी है यदि इसमें लूप है अन्यथा -1 वापस करें। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: linked-list : आउटपुट: 8 समाधान दृष्ट

  1. C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढना C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढना

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

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

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