इस समस्या में, हमें एक एकल लिंक की गई सूची LL और एक संख्या k दी गई है। हमारा काम एक लिंक की गई सूची में मॉड्यूलर नोड ढूंढना है।
समस्या का विवरण - हमें लिंक की गई सूची के अंतिम नोड को खोजने की जरूरत है जिसके लिए सूचकांक k से विभाज्य है यानी i % k ==0.
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
ll = 3 -> 1 -> 9 -> 6 -> 8 -> 2, k = 4
आउटपुट
6
स्पष्टीकरण
The element 6 has index 4, which is divisible by 4.
समाधान दृष्टिकोण
समस्या का एक सरल समाधान लिंक्ड सूची के तत्वों की गणना करने के लिए एक काउंटर बनाकर और मॉड्यूलर नोड यानी नोड को स्टोर करना है जिसके लिए i % k ==0 है, और n तक की स्थिति को संतुष्ट करने वाले सभी मानों के लिए अपडेट करें।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; struct Node { int data; Node* next; }; Node* newNode(int data) { Node* new_node = new Node; new_node->data = data; new_node->next = NULL; return new_node; } Node* findModularNodeLL(Node* head, int k) { if (k <= 0 || head == NULL) return NULL; int i = 1; Node* modNode = NULL; for (Node* currNode = head; currNode != NULL; currNode = currNode->next) { if (i % k == 0) modNode = currNode; i++; } return modNode; } int main() { Node* head = newNode(3); head->next = newNode(1); head->next->next = newNode(9); head->next->next->next = newNode(6); head->next->next->next->next = newNode(8); head->next->next->next->next->next = newNode(2); int k = 4; Node* modularNode = findModularNodeLL(head, k); cout<<"The Modular node of linked list is "; if (modularNode != NULL) cout<<modularNode->data; else cout<<"Not found!"; return 0; }
आउटपुट
The Modular node of linked list is 6