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

C भाषा में लिंक्ड लिस्ट के वैकल्पिक नोड्स प्रिंट करना (इटरेटिव मेथड)


इस समस्या में, प्रोग्राम को दी गई लिंक्ड लिस्ट से वैकल्पिक नोड्स प्रिंट करने होंगे यानी एक छोड़कर एक प्रिंट करना, इटरेटिव मेथड का उपयोग करके।

इटरेटिव मेथड वह है जो आमतौर पर लूप का उपयोग करता है जो तब तक निष्पादित होता है जब तक कंडीशन का मान 1 या सत्य रहता है।

मान लें, लिस्ट में नोड्स 29, 34, 43, 56 और 88 हैं तो आउटपुट वैकल्पिक नोड्स होंगे जैसे 29, 43 और 88।

C भाषा में लिंक्ड लिस्ट के वैकल्पिक नोड्स प्रिंट करना (इटरेटिव मेथड)

उदाहरण

Input: 29->34->43->56->88
Output: 29 43 88

दृष्टिकोण पूरी लिस्ट को अंतिम नोड तक ट्रैवर्स करना है। ट्रैवर्स करते समय एक काउंटर वेरिएबल लिया जा सकता है जिसे 1 से बढ़ाया जाता है और मान तब प्रिंट किया जाता है जब काउंटर सम या विषम होता है उपयोगकर्ता की पसंद के आधार पर। यदि उपयोगकर्ता 0 से प्रदर्शित करना चाहता है तो सम मान वाला काउंटर प्रदर्शित किया जाता है अन्यथा विषम मान वाला काउंटर प्रदर्शित किया जाता है।

एल्गोरिदम

शुरुआत
चरण 1 → नोड वेरिएबल को संरचना टाइप का बनाएं
   int data घोषित करें
   *next का उपयोग करके नोड टाइप का पॉइंटर घोषित करें
चरण 2 → void alternate(struct node* head) फंक्शन घोषित करें
   int count = 0 सेट करें
   लूप जब तक (head != NULL)
      यदि count % 2 == 0 तो head->data प्रिंट करें
      count++ सेट करें
      head = head->next सेट करें
   लूप समाप्त
चरण 3 → void push(struct node** header, int newdata) फंक्शन घोषित करें
   malloc फंक्शन का उपयोग करके newnode बनाएं
   newnode->data = newdata सेट करें
   newnode->next = (*header) सेट करें
   (*header) = newnode सेट करें
चरण 4 → main() में
   struct node* head = NULL का उपयोग करके हेड को पहले नोड पर इंगित करें
   alternate(head) कॉल करें
समाप्त

उदाहरण

#include <stdio.h>
#include <stdlib.h>
// नोड की संरचना बनाना
struct node {
    int data;
    struct node* next;
};
// वैकल्पिक नोड ढूंढने और प्रिंट करने का फंक्शन
void alternate(struct node* head) {
    int count = 0;
    while (head != NULL) {
        if (count % 2 == 0)
            printf(" %d ", head->data);
        count++;
        head = head->next;
    }
}
// लिस्ट में एलिमेंट पुश करने का फंक्शन
void push(struct node** header, int newdata) {
    struct node* newnode = (struct node*)malloc(sizeof(struct node));
    newnode->data = newdata;
    newnode->next = (*header);
    (*header) = newnode;
}
int main() {
    printf("alternate nodes are :");
    struct node* head = NULL;
    push(&head, 1);
    push(&head, 9);
    push(&head, 10);
    push(&head, 21);
    push(&head, 80);
    alternate(head);
    return 0;
}

आउटपुट

यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा।

alternate nodes are : 80 10 1

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

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

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

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

  1. C++ में पुनरावृत्ति का उपयोग करके लिंक्ड लिस्ट के वैकल्पिक नोड्स प्रिंट करें C++ में पुनरावृत्ति का उपयोग करके लिंक्ड लिस्ट के वैकल्पिक नोड्स प्रिंट करें

    लिंक्ड लिस्ट एक रैखिक डेटा संरचना है जो तत्वों को गैर-सन्निहित मेमोरी स्थानों में संग्रहीत करती है। प्रत्येक तत्व में लिंक्ड लिस्ट के अगले तत्व का एक पॉइंटर होता है। उदाहरण - इस समस्या में, हमें एक लिंक्ड लिस्ट दी गई है और हमें इस लिंक्ड लिस्ट के तत्वों को प्रिंट करना है लेकिन केवल वैकल्पिक तत्वों