n नोड्स दिए जाने पर, लिंक्ड लिस्ट में वैकल्पिक नोड्स का गुणनफल प्रिंट करना है। प्रोग्राम को केवल वैकल्पिक नोड्स का गुणनफल प्रिंट करना चाहिए बिना वास्तव में नोड्स के स्थान बदले।
उदाहरण
इनपुट: 10 20 30 40 50 60 आउटपुट: 15000
उपरोक्त उदाहरण में, पहले नोड से शुरू करके जो 10 है, वैकल्पिक नोड्स 10, 30, 50 हैं और उनका गुणनफल 10×30×50 = 15000 है।

उपरोक्त आरेख में, नीले रंग के नोड्स वैकल्पिक नोड्स हैं यदि हम पहले नोड से शुरू करते हैं और लाल रंग के नोड्स गैर-विचारणीय नोड्स हैं।
प्रयुक्त दृष्टिकोण
- एक अस्थायी पॉइंटर लें, मान लें temp, नोड टाइप का
- इस temp पॉइंटर को पहले नोड पर सेट करें जिसे हेड पॉइंटर इंगित करता है
- temp को temp → next → next पर तब तक ले जाएँ जब तक स्थिति (temp→next != NULL && temp != NULL && temp→next→next != NULL) सत्य रहती है
- 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
यदि head = NULL तो
head = newnode सेट करें
head->next = NULL सेट करें
समाप्त
अन्यथा
temp = head सेट करें
लूप जब तक temp->next != NULL
temp = temp->next सेट करें
समाप्त
newnode->next = NULL सेट करें
temp->next = newnode सेट करें
समाप्त
चरण 3 → लिस्ट प्रदर्शित करने का फंक्शन घोषित करें
void display()
यदि head = NULL तो
"no node" प्रिंट करें
समाप्त
अन्यथा
temp = head सेट करें
लूप जब तक temp != NULL
temp->data प्रिंट करें
temp = temp->next सेट करें
समाप्त
समाप्त
चरण 4 → वैकल्पिक नोड्स ढूंढने का फंक्शन घोषित करें
void alternate()
int product घोषित करें
temp = head सेट करें
product = head->data सेट करें
लूप जब तक (temp->next != NULL && temp != NULL && temp->next->next != NULL)
temp = temp->next->next सेट करें
product = product * (temp->data) सेट करें
समाप्त
product प्रिंट करें
चरण 5 → main() में
struct node* head = NULL का उपयोग करके नोड्स बनाएं
नोड डालने के लिए insert(10) कॉल करें
लिस्ट प्रदर्शित करने के लिए display() कॉल करें
वैकल्पिक नोड्स का गुणनफल ढूंढने के लिए alternate() कॉल करें
समाप्त
कोड
#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;
if(head == NULL) {
head = newnode;
head->next = NULL;
} else {
temp = head;
while(temp->next != NULL) {
temp = temp->next;
}
newnode->next = NULL;
temp->next = newnode;
}
}
// लिस्ट प्रदर्शित करने का फंक्शन
void display() {
if(head == NULL)
printf("no node ");
else {
temp = head;
while(temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
}
}
// वैकल्पिक एलिमेंट्स ढूंढने का फंक्शन
void alternate() {
int product;
temp = head;
product = head->data;
while(temp->next != NULL && temp != NULL && temp->next->next != NULL) {
temp = temp->next->next;
product = product * (temp->data);
}
printf("\nproduct of alternate nodes is %d : ", product);
}
int main() {
// लिस्ट बनाना
struct node* head = NULL;
// लिस्ट में एलिमेंट्स डालना
insert(10);
insert(20);
insert(30);
insert(40);
insert(50);
insert(60);
// लिस्ट प्रदर्शित करना
printf("linked list is : ");
display();
// गुणनफल ढूंढने के लिए alternate फंक्शन कॉल करना
alternate();
return 0;
}
आउटपुट
linked list is : 10 20 30 40 50 60 product of alternate nodes is : 15000