এই সমস্যায়, আমাদেরকে একটি একক লিঙ্কযুক্ত তালিকা দেওয়া হয়েছে 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.
সমাধান পদ্ধতি
সমস্যার একটি সহজ সমাধান হল লিঙ্ক করা তালিকার উপাদানগুলি গণনা করার জন্য একটি কাউন্টার তৈরি করা এবং মডুলার নোড অর্থাৎ নোড যার জন্য % 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