এখানে আমরা দেখব কিভাবে পুনরাবৃত্ত এবং পুনরাবৃত্ত পদ্ধতি ব্যবহার করে লিঙ্ক করা তালিকার দৈর্ঘ্য খুঁজে বের করা যায়। হেড পয়েন্টার দেওয়া হলে, দৈর্ঘ্য পেতে আমাদের এই ধাপগুলি অনুসরণ করতে হবে।
-
পুনরাবৃত্তিমূলক পদ্ধতির জন্য -
-
তালিকার প্রধানটি নিন, যতক্ষণ না বর্তমান পয়েন্টারটি শূন্য না হয়, পরবর্তী নোডে যান এবং গণনা বাড়ান৷
-
-
পুনরাবৃত্তিমূলক পদ্ধতির জন্য -
- একটি আর্গুমেন্ট হিসাবে হেড পাস করুন, মূল শর্ত হল যখন আর্গুমেন্টটি শূন্য হয়, তারপর 0 ফেরত দিন, অন্যথায় পুনরাবৃত্তভাবে তালিকায় প্রবেশ করুন এবং বর্তমান নোড থেকে পরবর্তী নোডটি পাঠান, সাবলিস্টের 1 + দৈর্ঘ্য ফেরত দিন
উদাহরণ
#include<iostream> using namespace std; class Node { public: int data; Node* next; }; void append(struct Node** start, int data) { struct Node* new_node = new Node; new_node->data = data; new_node->next = (*start); (*start) = new_node; } int count_recursive(Node* start) { if (start == NULL) return 0; return 1 + count_recursive(start->next); } int count_iterative(Node* start) { int count = 0; Node* current = start; while (current != NULL) { count++; current = current->next; } return count; } int main() { Node* start = NULL; append(&start, 1); append(&start, 3); append(&start, 1); append(&start, 2); append(&start, 1); cout << "Node count using iterative approach: " << count_iterative(start) << endl; cout << "Node count using recursion: " << count_recursive(start); }
আউটপুট
Node count using iterative approach: 5 Node count using recursion: 5