दिए गए 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