Programming Techniques

Bài tập về Binary Tree

I. Cơ bản về cây nhị phân

  1. Khởi tạo một cây nhị phân rỗng
  2. Chèn một nút vào cây nhị phân
  3. Xóa một nút trong cây nhị phân
  4. In cây theo thứ tự trước (Preorder)
  5. In cây theo thứ tự giữa (Inorder)
  6. In cây theo thứ tự sau (Postorder)
  7. Đếm số lượng nút trong cây
  8. Tính chiều cao của cây
  9. Tìm giá trị lớn nhất trong cây
  10. Tìm giá trị nhỏ nhất trong cây

II. Duyệt và tìm kiếm trong cây

  1. Duyệt cây theo cấp (Level Order)
  2. Tìm kiếm một nút trong cây
  3. Đếm số lượng nút lá
  4. Đếm số nút có đúng 1 con
  5. Đếm số nút có đúng 2 con
  6. In các nút ở mức k
  7. Kiểm tra cây có là cây nhị phân đầy đủ không
  8. Kiểm tra cây có là cây nhị phân hoàn chỉnh không
  9. Kiểm tra cây có là cây cân bằng không
  10. 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

  1. Tính tổng các giá trị trong cây
  2. Tính trung bình các nút lá
  3. In tất cả các đường đi từ gốc đến lá
  4. Tìm đường đi dài nhất từ gốc đến lá
  5. Tìm tổ tiên chung gần nhất của hai nút
  6. Kiểm tra 2 cây có giống nhau không
  7. Kiểm tra một cây có là cây con của cây khác không
  8. Chuyển cây nhị phân sang danh sách liên kết theo mức
  9. Tính tổng đường đi từ gốc đến các lá
  10. Đếm số nút có giá trị là số nguyên tố

IV. Cây nhị phân tìm kiếm (BST)

  1. Chèn một nút vào BST
  2. Xóa nút trong BST
  3. Tìm phần tử k trong BST
  4. Tìm phần tử gần nhất nhỏ hơn hoặc bằng k
  5. In BST theo thứ tự tăng dần
  6. Tìm K phần tử nhỏ nhất trong BST
  7. Kiểm tra tính hợp lệ của BST
  8. Chuyển BST sang mảng đã sắp xếp
  9. Tìm khoảng cách giữa 2 nút trong BST
  10. 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

  1. Chuyển cây nhị phân sang cây gương (mirror)
  2. Chuyển cây nhị phân thành biểu thức hậu tố
  3. Biểu diễn cây nhị phân trong file
  4. Xây dựng cây biểu thức từ biểu thức trung tố
  5. Mã hóa Huffman bằng cây nhị phân
  6. So sánh chiều cao 2 cây nhị phân
  7. Kiểm tra 2 cây có cấu trúc giống nhau không
  8. Tính độ rộng lớn nhất của cây
  9. Đếm số node tại mức lớn nhất
  10. Chuyển cây nhị phân sang danh sách liên kết theo inorder