एन नोड्स के साथ दिया गया कार्य एक लिंक्ड सूची में वैकल्पिक नोड के उत्पाद को प्रिंट करना है। प्रोग्राम को केवल नोड्स के स्थान को बदले बिना वैकल्पिक नोड्स के उत्पाद को प्रिंट करना चाहिए।
उदाहरण
Input -: 10 20 30 40 50 60 Output -: 15000
उपरोक्त उदाहरण में, पहले नोड से शुरू होकर 10 वैकल्पिक नोड 10, 30, 50 हैं और उनका उत्पाद 10*30*50 =15000 है।
उपरोक्त आरेख में, नीले रंग के नोड वैकल्पिक नोड हैं, यदि हम पहले नोड से शुरू करते हैं और लाल रंग के नोड गैर महत्वपूर्ण नोड हैं।
नीचे इस्तेमाल किया गया तरीका इस प्रकार है
-
एक अस्थायी सूचक लें, मान लें, प्रकार के नोड का अस्थायी
-
इस अस्थायी सूचक को पहले नोड पर सेट करें जो कि हेड पॉइंटर द्वारा इंगित किया गया है
-
अस्थायी को अस्थायी पर ले जाएं -> अगला -> अगला जब स्थिति (अस्थायी-> अगला! =नल &&अस्थायी! =नल &&अस्थायी-> अगला-> अगला! =नल) सही है
-
उत्पाद सेट करें =उत्पाद * (अस्थायी-> डेटा)
एल्गोरिदम
Start Step 1 -> create structure of a node and temp, next and head as pointer to a structure node struct node int data struct node *next, *head, *temp End Step 2 -> declare function to insert a node in a list void insert(int val) struct node* newnode = (struct node*)malloc(sizeof(struct node)) newnode->data = val IF head= NULL set head = newnode set head->next = NULL End Else Set temp=head Loop While temp->next!=NULL Set temp=temp->next End Set newnode->next=NULL Set temp->next=newnode End Step 3 -> Declare a function to display list void display() IF head=NULL Print no node End Else Set temp=head Loop While temp!=NULL Print temp->data Set temp=temp->next End End Step 4 -> declare a function to find alternate nodes void alternate() declare int product Set temp=head Set product=head->data Loop While(temp->next!=NULL && temp!=NULL && temp->next- >next!=NULL) Set temp=temp->next->next Set product=product * (temp->data) End Print product Step 5 -> in main() Create nodes using struct node* head = NULL; Call function insert(10) to insert a node Call display() to display the list Call alternate() to find alternate nodes product Stop
कोड
#include<stdio.h> #include<stdlib.h> //structure of a node struct node { int data; struct node *next; }*head,*temp; //function for inserting nodes into a list 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; } } //function for displaying a list void display() { if(head==NULL) printf("no node "); else { temp=head; while(temp!=NULL) { printf("%d ",temp->data); temp=temp->next; } } } //function for finding alternate elements 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() { //creating list struct node* head = NULL; //inserting elements into a list insert(10); insert(20); insert(30); insert(40); insert(50); insert(60); //displaying the list printf("linked list is : "); display(); //calling alternate function for finding product alternate(); return 0; }
आउटपुट
linked list is : 10 20 30 40 50 60 product of alternate nodes is : 15000