কম্পিউটার টিউটোরিয়াল

সি প্রোগ্রামিং-এ লিংকড লিস্টের বিকল্প নোড প্রিন্ট করা (ইটারেটিভ মেথড)


লিংকড লিস্ট থেকে বিকল্প নোডগুলো (একটি বাদ দিয়ে একটা) প্রিন্ট করতে হবে ইটারেটিভ (iterative) মেথড ব্যবহার করে।

ইটারেটিভ মেথডে লুপ ব্যবহার করা হয় যা শর্ত সত্য থাকা পর্যন্ত চলে।

উদাহরণ

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

সি প্রোগ্রামিং-এ লিংকড লিস্টের বিকল্প নোড প্রিন্ট করা (ইটারেটিভ মেথড)

অ্যাপ্রোচ: পুরো লিস্ট ট্রাভার্স করতে হবে। ট্রাভার্স করার সময় একটি কাউন্টার ভেরিয়েবল রাখা যায় যা ১ করে বাড়বে। কাউন্টার ইভেন (even) হলে বা অড (odd) হলে নোডের ডেটা প্রিন্ট করা হবে — ব্যবহারকারীর পছন্দমতো।

অ্যালগরিদম

START
Step 1: Create node structure
Step 2: Function alternate(node* head)
    count = 0
    While head != NULL
        IF count % 2 == 0 PRINT head->data
        count++; head = head->next
Step 3: Function push(node** header, int newdata) to insert at front
Step 4: In main()
    head = NULL, push elements, call alternate(head)
STOP

সি প্রোগ্রাম

#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. সি প্রোগ্রামিং-এ লিংকড লিস্ট রিভার্স না করে রিভার্স অর্ডারে প্রিন্ট করা

  2. সি++-এ সার্কুলার লিংকড লিস্টের নোডগুলোর যোগফল (Sum)

  3. সি++-এ লিংকড লিস্টের অল্টারনেট নোডগুলোর যোগফল

  4. C++-এ লিংকড লিস্টের אל্টারনেট নোড প্রিন্ট করুন (রিকার্সন ছাড়া)