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)

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.