Menu
CoddyTech

Lấy chiều cao

Bài học 5 trên 16 trong khóa học Cây AVL, chuỗi cấu trúc dữ liệu #10 của Coddy.

Thêm một phương thức getHeight vào AVLTree để đọc chiều cao đã lưu của một nút. Điểm cần lưu ý duy nhất là trường hợp null: cây con rỗng không tồn tại, nên theo quy ước, chiều cao của nó là 0, thấp hơn chiều cao 1 của nút lá thực một đơn vị.

Chuyển mọi thao tác tra cứu chiều cao qua phương thức này thay vì đọc trực tiếp node.height ở mọi nơi sẽ giúp bạn chỉ cần viết kiểm tra null một lần.

challenge icon

Thử thách

Người mới

Viết phương thức getHeight(node) trong AVLTree, trả về 0 nếu node là null, nếu không thì trả về node.height.

Tự làm thử

#include <stdio.h>
#include <string.h>
#include "avltree.h"

int main(void) {
    AVLTree* tree = AVLTree_create();
    char line[256];
    while (fgets(line, sizeof(line), stdin) != NULL) {
        line[strcspn(line, "\r\n")] = '\0';
        if (strcmp(line, "null") == 0) {
            printf("%d\n", AVLTree_getHeight(tree, NULL));
        }
        if (strcmp(line, "null") != 0) {
            int h;
            sscanf(line, "%d", &h);
            Node* n = Node_create(0);
            n->height = h;
            printf("%d\n", AVLTree_getHeight(tree, n));
        }
    }
    return 0;
}

Tất cả bài học trong Cây AVL, chuỗi cấu trúc dữ liệu #10

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