Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ में लिंक की गई सूची में मॉड्यूलर नोड खोजें

इस समस्या में, हमें एक एकल लिंक की गई सूची 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

  1. C++ में एक बहुस्तरीय लिंक्ड सूची को समतल करें

    इस समस्या में, हमें एक बहुस्तरीय लिंक्ड सूची दी गई है। हमारा काम एक बहुस्तरीय लिंक्ड सूची को समतल करने के लिए एक प्रोग्राम बनाना है। फ़्लैटनिंग ऑपरेशन इस तरह से किया जाता है कि पहले स्तर के नोड्स पहले लिंक की गई सूची में होंगे और फिर दूसरे स्तर के नोड होंगे। बहुस्तरीय लिंक की गई सूची एक बहु-आयामी

  1. सी ++ में लिंक्ड सूची में लूप की लंबाई पाएं

    इस समस्या में, हमें एक लिंक की गई सूची दी जाती है जिसमें लूप हो सकते हैं। हमारा कार्य लिंक्ड सूची में लूप की लंबाई ज्ञात करना है। समस्या का विवरण: हमें लूप में नोड्स की संख्या गिनने की आवश्यकता है यदि इसमें लूप है अन्यथा -1 लौटाएं। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: लिंक्ड-लिस्

  1. सी++ में डबल लिंक्ड लिस्ट का आकार खोजने का कार्यक्रम

    इस समस्या में हमें एक डबल लिंक्ड लिस्ट दी जाती है। हमारा काम C++ में डबली लिंक्ड लिस्ट का आकार खोजने के लिए एक प्रोग्राम बनाना है। डबल लिंक्ड लिस्ट एक विशेष प्रकार की लिंक्ड लिस्ट है जिसमें सिंगल लिंक्ड लिस्ट की तुलना में आगे और पीछे दोनों तरह से नेविगेशन संभव है। डबल लिंक्ड सूचियों की अवधारणा को