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

In nút xen kẽ của danh sách liên kết bằng đệ quy C++

Cho danh sách liên kết đơn. In các nút ở vị trí chẵn (1, 3, 5...). Ví dụ: 2→4→1→67→48→90 cho kết quả 2→1→48.

Giải thuật lặp với cờ

Sử dụng biến flag xen kẽ giữa 0 và 1. In khi flag=0, sau đó đảo flag. Duyệt qua danh sách một lần.

Ví dụ minh họa

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

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

void printAlternate(Node* head) {
    int flag = 0;
    while (head) {
        if (flag == 0) {
            printf("%d ", head->data);
            flag = 1;
        } else {
            flag = 0;
        }
        head = head->next;
    }
}

void insert(Node** head, int data) {
    Node* node = (Node*)malloc(sizeof(Node));
    node->data = data;
    node->next = *head;
    *head = node;
}

int main() {
    Node* head = NULL;
    insert(&head, 23);
    insert(&head, 4);
    insert(&head, 98);
    insert(&head, 5);
    insert(&head, 71);
    printAlternate(head);  // 71 98 23
    return 0;
}

Kết quả

71 98 23