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

लिंक्ड सूची के वैकल्पिक नोड्स का उत्पाद

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

उदाहरण

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

  1. सी भाषा में लिंक्ड सूची (पुनरावृत्त विधि) के वैकल्पिक नोड्स को प्रिंट करें

    इस समस्या में, प्रोग्राम को दी गई लिंक्ड सूची से उन विकल्पों को प्रिंट करना चाहिए जो एक को दूसरे को प्रिंट करना छोड़ रहे हैं और इसी तरह पुनरावृत्त विधि का उपयोग कर रहे हैं। पुनरावृत्त विधि वह है जो आम तौर पर उन लूपों का उपयोग करती है जिन्हें तब तक निष्पादित किया जाता है जब तक कि स्थिति मान 1 या सत्

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

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

  1. सी++ में लिंक्ड सूची के वैकल्पिक नोड्स का योग

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