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

C++ में सिंगल लिंक्ड लिस्ट में सभी प्राइम नोड्स का उत्पाद

एन नोड्स के साथ दिया गया और कार्य एक लिंक्ड सूची में सभी प्राइम नोड्स के उत्पाद को प्रिंट करना है। प्राइम नोड्स वे हैं जिनके पास उनके गिनती स्थानों के रूप में प्रमुख मान होंगे।

इनपुट

10 20 30 40 50

आउटपुट

4,00,000

स्पष्टीकरण -10 इंडेक्स वैल्यू 1 पर है जो नॉन-प्राइम है इसलिए इसे छोड़ दिया जाएगा। इंडेक्स वैल्यू 2 के साथ 20 पर जाना जो एक अभाज्य संख्या है इसलिए इस पर विचार किया जाएगा। इसी तरह, 40 और 50 प्रमुख सूचकांक स्थानों पर हैं।

उत्पाद -20*40*50 =4,00,000

C++ में सिंगल लिंक्ड लिस्ट में सभी प्राइम नोड्स का उत्पाद

ऊपर दिए गए आरेख में, लाल रंग के नोड प्राइम नोड्स का प्रतिनिधित्व करते हैं

नीचे इस्तेमाल किया गया तरीका इस प्रकार है

  • एक अस्थायी सूचक लें, मान लें, प्रकार के नोड का अस्थायी

  • इस अस्थायी सूचक को पहले नोड पर सेट करें जो कि हेड पॉइंटर द्वारा इंगित किया गया है

  • अस्थायी को अस्थायी → अगला ले जाएं और जांचें कि नोड एक प्राइम नोड है या एक गैर प्राइम नोड है। अगर नोड एक प्राइम नोड है

  • उत्पाद =उत्पाद * (अस्थायी → डेटा) सेट करें

  • अगर नोड अभाज्य नहीं है तो अगले नोड पर जाएँ

  • उत्पाद चर का अंतिम मान प्रिंट करें।

एल्गोरिदम

Start
Step 1 → create structure of a node to insert into a list
   struct node
      int data;
      node* next
   End
Step 2 → declare function to insert a node in a list
   void push(node** head_ref, int data)
      Set node* newnode = (node*)malloc(sizeof(struct node))
      Set newnode→data = data
      Set newnode→next = (*head_ref)
      Set (*head_ref) = newnode
   End
Step 3 → Declare a function to check for prime or not
   bool isPrime(int data)
      IF data <= 1
         return false
      End
      IF data <= 3
         return true
      End
      IF data % 2 = 0 || data % 3 = 0
         return false
      Loop For int i = 5 and i * i <= data and i = i + 6
         IFdata % i = 0 || data % (i + 2) = 0
            return false
         End
      End
      return true
Step 4→ declare a function to calculate product
   void product(node* head_ref)
      set int product = 1
      set node* ptr = head_ref
      While ptr != NULL
         IF (isPrime(ptr→data))
            Set product *= ptr→data
         End
         Set ptr = ptr→next
      End
      Print product
Step 5 → In main()
   Declare node* head = NULL
   Call push(&head, 10)
   Call push(&head, 2)
   Call product(head)
Stop

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//structure of a node
struct node{
   int data;
   node* next;
};
//function to insert a node
void push(node** head_ref, int data){
   node* newnode = (node*)malloc(sizeof(struct node));
   newnode→data = data;
   newnode→next = (*head_ref);
   (*head_ref) = newnode;
}
// Function to check if a number is prime
bool isPrime(int data){
   if (data <= 1)
      return false;
   if (data <= 3)
      return true;
   if (data % 2 == 0 || data % 3 == 0)
      return false;
   for (int i = 5; i * i <= data; i = i + 6)
      if (data % i == 0 || data % (i + 2) == 0)
         return false;
   return true;
}
//function to find the product
void product(node* head_ref){
   int product = 1;
   node* ptr = head_ref;
   while (ptr != NULL){
      if (isPrime(ptr→data)){
         product *= ptr→data;
      }
      ptr = ptr→next;
   }
   cout << "Product of all the prime nodes of a linked list = " << product;
}
int main(){
   node* head = NULL;
   push(&head, 10);
   push(&head, 2);
   push(&head, 7);
   push(&head, 6);
   push(&head, 85);
   product(head);
   return 0;
}

आउटपुट

यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -

Product of all the prime nodes of a linked list = 14

  1. C++ में एक बाइनरी ट्री में सभी नोड्स का उत्पाद

    नोड्स वाले बाइनरी ट्री के साथ दिया गया है और कार्य किसी दिए गए बाइनरी ट्री के सभी नोड्स के उत्पाद को खोजना है। बाइनरी ट्री में एक रूट नोड होता है जो एक ट्री के सभी नोड्स का मास्टर नोड होता है। एक नोड में डेटा पार्ट, लेफ्ट पॉइंटर होता है जो आगे लेफ्ट सबडायरेक्टरी और राइट पॉइंटर बनाएगा जो राइट सबडायर

  1. C++ में सर्कुलर लिंक्ड लिस्ट के नोड्स का योग

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

  1. C++ में सर्कुलर लिंक्ड लिस्ट में नोड्स गिनें

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