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

इस समस्या में, हमें एक लिंक्ड लिस्ट दी गई है और हमें इस लिंक्ड लिस्ट के तत्वों को प्रिंट करना है लेकिन केवल वैकल्पिक तत्वों को प्रिंट करना है। आइए एक उदाहरण लेकर इस समस्या को बेहतर ढंग से समझते हैं,
Input : 2 -> 4 -> 1 -> 67 -> 48 -> 90 Output : 2 -> 1 -> 48
व्याख्या - हम लिंक्ड लिस्ट के वैकल्पिक तत्वों को प्रिंट करेंगे। तो पहला, तीसरा और पांचवां तत्व प्रिंट होते हैं।
हम एक फ्लैग तत्व का उपयोग करेंगे जो प्रारंभ में 0 होगा और प्रत्येक पुनरावृत्ति पर बढ़ेगा जो तत्व प्रिंट करता है अन्यथा घटाएगा और हम नोड मान को तब प्रिंट करेंगे जब फ्लैग 0 हो।
उदाहरण
#include <stdio.h> #include <stdlib.h> struct Node { int data; struct Node* next; }; void printAlternateNode(struct Node* head){ int flag = 0; while (head != NULL) { if (flag == 0){ printf(" %d ", head->data); flag = 1; } else flag = 0; head = head->next; } } void insertNode(struct Node** head_ref, int new_data){ struct Node* new_node = (struct Node*)malloc(sizeof(struct Node)); new_node->data = new_data; new_node->next = (*head_ref); (*head_ref) = new_node; } int main(){ struct Node* head = NULL; insertNode(&head, 23); insertNode(&head, 4); insertNode(&head, 98); insertNode(&head, 5); insertNode(&head, 71); printAlternateNode(head); return 0; } आउटपुट
71 98 23