এখানে আমরা দেখব কিভাবে পুনরাবৃত্ত এবং পুনরাবৃত্ত পদ্ধতি ব্যবহার করে লিঙ্ক করা তালিকার দৈর্ঘ্য খুঁজে বের করা যায়। হেড পয়েন্টার দেওয়া হলে, দৈর্ঘ্য পেতে আমাদের এই ধাপগুলি অনুসরণ করতে হবে।
-
পুনরাবৃত্তিমূলক পদ্ধতির জন্য -
-
তালিকার প্রধানটি নিন, যতক্ষণ না বর্তমান পয়েন্টারটি শূন্য না হয়, পরবর্তী নোডে যান এবং গণনা বাড়ান৷
-
-
পুনরাবৃত্তিমূলক পদ্ধতির জন্য -
- একটি আর্গুমেন্ট হিসাবে হেড পাস করুন, মূল শর্ত হল যখন আর্গুমেন্টটি শূন্য হয়, তারপর 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