একটি লিঙ্কযুক্ত তালিকা একটি রৈখিক ডেটা কাঠামো যা উপাদানটিকে অ-সংলগ্ন মেমরি অবস্থানগুলিতে সংরক্ষণ করে। প্রতিটি উপাদানে লিঙ্ক করা তালিকার পরবর্তী উপাদানের একটি পয়েন্টার থাকে৷
উদাহরণ −
এই সমস্যায়, আমাদের একটি লিঙ্কযুক্ত তালিকা দেওয়া হয়েছে এবং আমাদের এই লিঙ্কযুক্ত তালিকার উপাদানগুলি প্রিন্ট করতে হবে তবে শুধুমাত্র বিকল্প উপাদানগুলি প্রিন্ট করতে হবে। সমস্যাটি আরও ভালভাবে বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
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