Menu
CoddyTech

Nút có nút con

Bài học 4 trên 13 trong khóa học Cây nhị phân, chuỗi cấu trúc dữ liệu #3 của Coddy.

challenge icon

Thử thách

Dễ

Bổ sung cho Node khả năng hỗ trợ hai nút con (trái và phải). Hàm khởi tạo cần khởi tạo cả hai thành null/None/v.v. Thêm getLeft / setLeft và getRight / setRight.

Tự làm thử

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "node.h"

int main() {
    Node n;
    Node_init(&n);
    char line[256];
    while (fgets(line, sizeof(line), stdin)) {
        line[strcspn(line, "\r\n")] = '\0';
        char* cmd = strtok(line, " \t");
        if (!cmd) continue;
        if (strcmp(cmd, "setValue") == 0) {
            char* arg = strtok(NULL, " \t");
            if (arg) Node_setValue(&n, atoi(arg));
        }
        if (strcmp(cmd, "getValue") == 0) {
            printf("%d\n", Node_getValue(&n));
        }
        if (strcmp(cmd, "setLeft") == 0) {
            char* arg = strtok(NULL, " \t");
            Node* c = Node_new();
            Node_setValue(c, atoi(arg));
            Node_setLeft(&n, c);
        }
        if (strcmp(cmd, "getLeftValue") == 0) {
            printf("%d\n", Node_getValue(Node_getLeft(&n)));
        }
        if (strcmp(cmd, "setRight") == 0) {
            char* arg = strtok(NULL, " \t");
            Node* c = Node_new();
            Node_setValue(c, atoi(arg));
            Node_setRight(&n, c);
        }
        if (strcmp(cmd, "getRightValue") == 0) {
            printf("%d\n", Node_getValue(Node_getRight(&n)));
        }
    }
    return 0;
}

Tất cả bài học trong Cây nhị phân, chuỗi cấu trúc dữ liệu #3

Tự luyện tập: Trình biên dịch C online