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

उदाहरण
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