Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सिंगली लिंक्ड लिस्ट के नोड्स का गुणनफल

दिए गए n नोड्स के साथ, कार्य सिंगली लिंक्ड लिस्ट के सभी नोड्स का गुणनफल प्रिंट करना है। प्रोग्राम को प्रारंभिक नोड से शुरू करके सिंगली लिंक्ड लिस्ट के सभी नोड्स को तब तक पार करना होगा जब तक NULL नहीं मिल जाता।

उदाहरण

इनपुट: 1 2 3 4 5 6
आउटपुट: 720

उपरोक्त उदाहरण में, पहले नोड से शुरू करके सभी नोड्स को पार किया जाता है यानी 1, 2, 3, 4, 5, 6 और उनका गुणनफल 1×2×3×4×5×6 = 720 होता है।

प्रयुक्त दृष्टिकोण

  • एक अस्थायी पॉइंटर लें, मान लीजिए temp, नोड प्रकार का
  • इस temp पॉइंटर को पहले नोड पर सेट करें जिसे हेड पॉइंटर द्वारा इंगित किया जाता है
  • जब तक temp NULL नहीं है, temp को temp->next पर ले जाएं
  • product = product * (temp->data) सेट करें

एल्गोरिथ्म

शुरुआत
चरण 1 → नोड की संरचना बनाएं और temp, next और head को संरचना नोड के पॉइंटर के रूप में घोषित करें
   struct node
      int data
      struct node *next, *head, *temp
   अंत

चरण 2 → लिस्ट में नोड डालने के लिए फ़ंक्शन घोषित करें
   void insert(int val)
      struct node* newnode = (struct node*)malloc(sizeof(struct node))
      newnode->data = val
      IF head = NULL
         head = newnode सेट करें
         head->next = NULL सेट करें
      अंत
      अन्यथा
         temp = head सेट करें
         लूप जब तक temp->next != NULL
            temp = temp->next सेट करें
         अंत
         newnode->next = NULL सेट करें
         temp->next = newnode सेट करें
      अंत

चरण 3 → लिस्ट प्रदर्शित करने के लिए फ़ंक्शन घोषित करें
   void display()
      IF head = NULL
         "कोई नोड नहीं" प्रिंट करें
      अंत
      अन्यथा
         temp = head सेट करें
         लूप जब तक temp != NULL
            temp->data प्रिंट करें
            temp = temp->next सेट करें
         अंत
      अंत

चरण 4 → नोड्स का गुणनफल खोजने के लिए फ़ंक्शन घोषित करें
   void product_nodes()
      int product = 1 घोषित करें
      temp = head सेट करें
      लूप जब तक temp != NULL
         product = product * (temp->data) सेट करें
         temp = temp->next सेट करें
      अंत
      product प्रिंट करें

चरण 5 → main() में
   struct node* head = NULL का उपयोग करके नोड्स बनाएं
   नोड डालने के लिए insert(10) फ़ंक्शन कॉल करें
   लिस्ट प्रदर्शित करने के लिए display() कॉल करें
   गुणनफल खोजने के लिए product_nodes() कॉल करें
रुकें

उदाहरण कोड

#include <stdio.h>
#include <stdlib.h>

// नोड की संरचना
struct node {
   int data;
   struct node *next;
} *head, *temp;

// लिस्ट में नोड्स डालने के लिए फ़ंक्शन
void insert(int val) {
   struct node* newnode = (struct node*)malloc(sizeof(struct node));
   newnode->data = val;
   newnode->next = NULL;
   if (head == NULL) {
      head = newnode;
      temp = head;
   } else {
      temp->next = newnode;
      temp = temp->next;
   }
}

// लिस्ट प्रदर्शित करने के लिए फ़ंक्शन
void display() {
   if (head == NULL)
      printf("कोई नोड नहीं");
   else {
      temp = head;
      while (temp != NULL) {
         printf("%d ", temp->data);
         temp = temp->next;
      }
   }
}

// गुणनफल खोजने के लिए फ़ंक्शन
void product_nodes() {
   int product = 1;
   temp = head;
   while (temp != NULL) {
      product = product * (temp->data);
      temp = temp->next;
   }
   printf("\nनोड्स का गुणनफल है: %d", product);
}

int main() {
   // लिस्ट बनाना
   struct node* head = NULL;
   // लिस्ट में तत्व डालना
   insert(1);
   insert(2);
   insert(3);
   insert(4);
   insert(5);
   insert(6);
   // लिस्ट प्रदर्शित करना
   printf("लिंक्ड लिस्ट है: ");
   display();
   // गुणनफल खोजने के लिए फ़ंक्शन कॉल करना
   product_nodes();
   return 0;
}

आउटपुट

लिंक्ड लिस्ट है: 1 2 3 4 5 6
नोड्स का गुणनफल है: 720
  1. C भाषा में दिए गए इंडेक्स पर लिंक्ड लिस्ट के नोड्स प्रिंट करना C भाषा में दिए गए इंडेक्स पर लिंक्ड लिस्ट के नोड्स प्रिंट करना

    हमें दिए गए इंडेक्स पर लिंक्ड लिस्ट के नोड्स का डेटा प्रिंट करना है। ऐरे के विपरीत लिंक्ड लिस्ट में आमतौर पर इंडेक्स नहीं होते इसलिए हमें पूरी लिंक्ड लिस्ट को ट्रैवर्स करना होगा और जब हम किसी विशेष इंडेक्स पर पहुंचें तो डेटा प्रिंट करना होगा। मान लें, लिस्ट में नोड्स 29, 34, 43, 56 और 88 हैं और इं

  1. C++ में एकल लिंक्ड सूची में सभी अभाज्य नोड्स का गुणनफल C++ में एकल लिंक्ड सूची में सभी अभाज्य नोड्स का गुणनफल

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

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

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