एक लिंक्ड सूची एक रैखिक डेटा संरचना है जो तत्व को गैर-सन्निहित स्मृति स्थानों में संग्रहीत करती है। प्रत्येक तत्व में लिंक की गई सूची के अगले तत्व के लिए एक सूचक होता है।
उदाहरण -
इस समस्या में, हमें एक लिंक्ड सूची दी जाती है और हमें इस लिंक्ड सूची के तत्वों को मुद्रित करने की आवश्यकता होती है लेकिन केवल वैकल्पिक तत्वों को मुद्रित करना होता है। आइए समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं,
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