কম্পিউটার টিউটোরিয়াল

C++-এ ডাবলি লিংকড লিস্টের আকার (Size) বের করার প্রোগ্রাম


এই সমস্যাতে, আমাদের একটি ডাবলি লিংকড লিস্ট (Doubly Linked List) দেওয়া আছে। আমাদের কাজ হল C++-এ ডাবলি লিংকড লিস্টের আকার (size/length) বের করার প্রোগ্রাম লিখা।

ডাবলি লিংকড লিস্ট হল লিংকড লিস্টের একটি বিশেষ ধরন যেখানে আগে ও পিছে উভয় দিকে নেভিগেশন করা যায়, যা সিঙ্গলি লিংকড লিস্টের তুলনায় সহজ। ডাবলি লিংকড লিস্ট বোঝার জন্য কিছু গুরুত্বপূর্ণ টার্ম:

  • Link - লিংকড লিস্টের প্রতিটি লিংক একটি ডেটা সংরক্ষণ করতে পারে जिसे element বলা হয়।

  • Next - প্রতিটি লিংক পরবর্তী লিংকের সাথে সংযুক্ত থাকে जिसे Next বলা হয়।

  • Prev - প্রতিটি লিংক পূর্ববর্তী লিংকের সাথে সংযুক্ত থাকে जिसे Prev বলা হয়।

  • LinkedList - একটি লিংকড লিস্টে প্রথম লিংকের সাথে সংযোগ থাকে (First) এবং শেষ লিংকের সাথে সংযোগ থাকে (Last)।

ডাবলি লিংকড লিস্টের প্রতিনিধিত্ব:

C++-এ ডাবলি লিংকড লিস্টের আকার (Size) বের করার প্রোগ্রাম

সমস্যা বর্ণনা: আমাদের উপরের ধরনের একটি ডাবলি লিংকড লিস্ট দেওয়া থাকবে। আমাদের এর আকার (length) বের করতে হবে।

উদাহরণ:

ইনপুট

উপরোক্ত লিংকড লিস্ট A <-> B <-> C

আউটপুট

3

সমাধানের পদ্ধতি

ডাবলি লিংকড লিস্টের আকার বের করতে, আমাদের লিস্টটি ট্রাভার্স (traverse) করতে হবে এবং একটি লেন্থ ভেরিয়েবল দিয়ে গণনা রাখতে হবে।

অ্যালগরিদম

ইনিশিয়ালাইজ: length = 0, *temp = head

  • স্টেপ ১: লিস্ট ট্রাভার্স করুন (temp != NULL পর্যন্ত)।
    • স্টেপ ১.১: length++, length বাড়ান
    • স্টেপ ১.২: পয়েন্টার আপডেট করুন, temp = temp->next
  • স্টেপ ২: length প্রিন্ট করুন।

প্রোগ্রাম

#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++-এ লিংকড লিস্টে লুপের দৈর্ঘ্য বের করুন

  2. C++-এ ডাবলি লিংকড লিস্টের আকার (Size) বের করার প্রোগ্রাম

  3. ডাবলি লিংকড লিস্ট দিয়ে প্রায়োরিটি কিউ বাস্তবায়ন C++-তে

  4. সিংলি লিঙ্কড লিস্ট বাস্তবায়নের C++ প্রোগ্রাম