Chiều cao của cây nhị phân là khoảng cách từ nút gốc đến nút con xa nhất với gốc.
Dưới đây là một ví dụ:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
Chiều cao của cây nhị phân: 4
Định nghĩa cây nhị phân
Cây là một đối tượng chứa giá trị nguyên đã ký và hai cây khác hoặc con trỏ tới chúng.
Cấu trúc của cấu trúc cây nhị phân trông giống như sau:
typedef struct tree
{
struct tree * l;
struct tree * r;
int v;
} tree;
Các thách thức:
Đầu vào
Rễ cây nhị phân
Đầu ra
Số đại diện cho chiều cao của cây nhị phân
Giả sử bạn được cung cấp gốc của cây nhị phân làm đầu vào, hãy viết chương trình ngắn nhất tính chiều cao của cây nhị phân và trả về chiều cao. Chương trình có số lượng byte (khoảng trắng kế toán) ít nhất sẽ thắng.
h
. Có thể tốt hơn để xác định một cấu trúc cụ thể được tạo ra chỉ trong danh sách cho mục đích của thách thức này.
[root_value, left_node, right_node]
trong đó mỗi cây left_node
và right_node
cũng là cây nhị phân có thể chấp nhận? Nó sẽ là tầm thường trong nhiều ngôn ngữ, nhưng có thể là niềm vui ở một số ngôn ngữ khác.
a tree is an object that contains a value and either two other trees or pointers to them
. Một định nghĩa bao gồm các ngôn ngữ không có đối tượng cũng sẽ rất hay.