Bài tập về Binary Tree
I. Cơ bản về cây nhị phân
- Khởi tạo một cây nhị phân rỗng
- Chèn một nút vào cây nhị phân
- Xóa một nút trong cây nhị phân
- In cây theo thứ tự trước (Preorder)
- In cây theo thứ tự giữa (Inorder)
- In cây theo thứ tự sau (Postorder)
- Đếm số lượng nút trong cây
- Tính chiều cao của cây
- Tìm giá trị lớn nhất trong cây
- Tìm giá trị nhỏ nhất trong cây
II. Duyệt và tìm kiếm trong cây
- Duyệt cây theo cấp (Level Order)
- Tìm kiếm một nút trong cây
- Đếm số lượng nút lá
- Đếm số nút có đúng 1 con
- Đếm số nút có đúng 2 con
- In các nút ở mức k
- Kiểm tra cây có là cây nhị phân đầy đủ không
- Kiểm tra cây có là cây nhị phân hoàn chỉnh không
- Kiểm tra cây có là cây cân bằng không
- Kiểm tra cây có là cây nhị phân tìm kiếm không
III. Xử lý dữ liệu trên cây
- Tính tổng các giá trị trong cây
- Tính trung bình các nút lá
- In tất cả các đường đi từ gốc đến lá
- Tìm đường đi dài nhất từ gốc đến lá
- Tìm tổ tiên chung gần nhất của hai nút
- Kiểm tra 2 cây có giống nhau không
- Kiểm tra một cây có là cây con của cây khác không
- Chuyển cây nhị phân sang danh sách liên kết theo mức
- Tính tổng đường đi từ gốc đến các lá
- Đếm số nút có giá trị là số nguyên tố
IV. Cây nhị phân tìm kiếm (BST)
- Chèn một nút vào BST
- Xóa nút trong BST
- Tìm phần tử k trong BST
- Tìm phần tử gần nhất nhỏ hơn hoặc bằng k
- In BST theo thứ tự tăng dần
- Tìm K phần tử nhỏ nhất trong BST
- Kiểm tra tính hợp lệ của BST
- Chuyển BST sang mảng đã sắp xếp
- Tìm khoảng cách giữa 2 nút trong BST
- Chuyển mảng đã sắp xếp thành BST cân bằng
V. Bài toán mở rộng và ứng dụng
- Chuyển cây nhị phân sang cây gương (mirror)
- Chuyển cây nhị phân thành biểu thức hậu tố
- Biểu diễn cây nhị phân trong file
- Xây dựng cây biểu thức từ biểu thức trung tố
- Mã hóa Huffman bằng cây nhị phân
- So sánh chiều cao 2 cây nhị phân
- Kiểm tra 2 cây có cấu trúc giống nhau không
- Tính độ rộng lớn nhất của cây
- Đếm số node tại mức lớn nhất
- Chuyển cây nhị phân sang danh sách liên kết theo inorder