Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

In các nút xen kẽ danh sách liên kết (Iterative) trong C

Bài toán

In các nút xen kẽ (cách 1 lấy 1) của danh sách liên kết dùng vòng lặp.

Ví dụ

List: 29→34→43→56→88
Output: 29 43 88 (chỉ số chẵn 0,2,4)

In các nút xen kẽ danh sách liên kết (Iterative) trong C

Thuật toán

count = 0
While head != NULL:
    If count%2==0: print head->data
    count++
    head = head->next

Mã nguồn C

#include <stdio.h>
#include <stdlib.h>

struct node { int data; struct node* next; };

void alternate(struct node* head) {
    int count = 0;
    while (head) {
        if (count%2 == 0) printf("%d ", head->data);
        count++;
        head = head->next;
    }
}

void push(struct node** head, int data) {
    struct node* n = malloc(sizeof(struct node));
    n->data = data; n->next = *head; *head = n;
}

int main() {
    struct node* head = NULL;
    push(&head, 1); push(&head, 9);
    push(&head, 10); push(&head, 21);
    push(&head, 80);
    printf("Alternate: ");
    alternate(head);
    return 0;
}

Kết quả

Alternate: 80 10 1

Lưu ý: push thêm đầu nên list thực tế: 80→21→10→9→1. Nút chẵn: 80, 10, 1.