इस समस्या में हमें एक डबल लिंक्ड लिस्ट दी जाती है। हमारा काम 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