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

एक फ़ंक्शन लिखें जो सी ++ में एक लिंक्ड सूची में दिए गए इंट की संख्या की गणना करता है

इस समस्या में हमें एक लिंक्ड लिस्ट दी जाती है। हमारा काम एक ऐसा फ़ंक्शन बनाना है जो लिंक की गई सूची में किसी दिए गए नंबर के आने की संख्या को गिनने में सक्षम हो।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

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

  1. सी++ में लिंक्ड सूची के वैकल्पिक नोड्स का योग

    इस समस्या में हमें एक लिंक्ड लिस्ट दी जाती है। हमारा काम लिंक की गई सूची के वैकल्पिक नोड्स के योग को प्रिंट करना है। लिंक्ड सूची डेटा संरचना का एक क्रम है जो लिंक के माध्यम से एक साथ जुड़े होते हैं। अब, समस्या पर वापस आते हैं। यहां, हम लिंक की गई सूची के वैकल्पिक नोड्स जोड़ेंगे। इसका मतलब है कि ह

  1. दी गई सूची से संख्या ज्ञात करें जिसके लिए फ़ंक्शन का मान C++ में A के सबसे निकट है

    मान लीजिए कि हमारे पास एक फ़ंक्शन F(n) है, जैसे कि F(n) =P - (0.006*n), जहां P भी दिया गया है। पूर्णांकों और एक संख्या A की सूची को देखते हुए, कार्य दी गई सूची से संख्या ज्ञात करना है, जिसके लिए फलन का मान A के निकट है। इसलिए यदि P =12, और A =5, तो सूची {1000 होगी , 2000} तो आउटपुट 1000 होगा। तो यदि

  1. C++ में दिए गए अंकों से बनने वाली सबसे बड़ी संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास अंकों की एक सरणी है। हमें वह अधिकतम संख्या ज्ञात करनी है जो सरणी के सभी अंकों का उपयोग करके प्राप्त की जा सकती है। तो अगर सरणी [3, 3, 9, 6, 2, 5] की तरह है, तो अधिकतम संख्या 965332 हो सकती है। समस्या से, हम देख सकते हैं कि हम अंकों को गैर-बढ़ते क्रम में आसानी से सॉर्ट कर सकते