यहां हम देखेंगे कि कैसे पुनरावर्ती और पुनरावर्ती दृष्टिकोणों का उपयोग करके किसी लिंक की गई सूची की लंबाई का पता लगाया जाए। यदि हेड पॉइंटर दिया गया है, तो हमें लंबाई प्राप्त करने के लिए इन चरणों का पालन करना होगा।
-
पुनरावृत्त दृष्टिकोण के लिए -
-
सूची का शीर्ष लें, जब तक कि वर्तमान सूचक शून्य न हो, अगले नोड पर जाएं और गिनती बढ़ाएं।
-
-
पुनरावर्ती दृष्टिकोण के लिए -
- सिर को एक तर्क के रूप में पास करें, आधार स्थिति तब होती है जब तर्क शून्य होता है, फिर 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