इस समस्या में हमें एक लिंक्ड लिस्ट दी जाती है। हमारा काम एक ऐसा फ़ंक्शन बनाना है जो लिंक की गई सूची में किसी दिए गए नंबर के आने की संख्या को गिनने में सक्षम हो।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
Linked list = 10-> 50 -> 10 -> 20 -> 100 -> 10, int = 10
आउटपुट
3
व्याख्या - लिंक की गई सूची में 10 नंबर 3 बार आता है।
इस समस्या का समाधान सरल है, बस लिंक की गई सूची को पार करें और एक काउंटर बढ़ाएँ, वर्तमान नोड मान दिए गए नंबर के बराबर है।
लिंक की गई सूची के नोड्स पर लूपिंग पुनरावृत्ति के साथ-साथ रिकर्सन का उपयोग करके किया जा सकता है और हम समस्या को हल करने के लिए दोनों विधियों का वर्णन कर रहे हैं
पुनरावृत्ति का उपयोग करके समाधान को स्पष्ट करने के लिए कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; class Node { public: int data; Node* next; }; void push(Node** head_ref, int new_data) { Node* new_node = new Node(); new_node->data = new_data; new_node->next = (*head_ref); (*head_ref) = new_node; } int countInt(Node* head, int search_for) { Node* current = head; int intCount = 0; while (current != NULL) { if (current->data == search_for) intCount++; current = current->next; } return intCount; } int main() { Node* head = NULL; push(&head, 10); push(&head, 40); push(&head, 10); push(&head, 50); push(&head, 20); push(&head, 90); push(&head, 10); cout<<"The count of 10 in the linked list is "<<countInt(head, 10); return 0; }
आउटपुट
लिंक की गई सूची में 10 की संख्या 3 है
पुनरावृत्ति का उपयोग करके समाधान का वर्णन करने के लिए कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; int intCount = 0; class Node { public: int data; Node* next; }; void push(Node** head_ref, int new_data) { Node* new_node = new Node(); new_node->data = new_data; new_node->next = (*head_ref); (*head_ref) = new_node; } int countInt(struct Node* head, int key){ if (head == NULL) return intCount; if (head->data == key) intCount++; return countInt(head->next, key); } int main() { Node* head = NULL; push(&head, 10); push(&head, 40); push(&head, 10); push(&head, 50); push(&head, 20); push(&head, 90); push(&head, 10); cout<<"The count of 10 in the linked list is "<<countInt(head, 10); return 0; }
आउटपुट
The count of 10 in the linked list is 3