Cây tìm kiếm nhị phân
Cây tìm kiếm nhị phân là cây với mỗi nút k
thì
- Mỗi khóa trên cây con trái đều nhỏ hơn khóa của
nút k
- Mỗi khóa trên cây con phải đều lớn hơn khóa của
nút k
Ví dụ sau là cây tìm kiếm nhị phân với các khóa như sau:
50 ↙ ↘ 30 90 ↙↘ ↙↘ 20 40 70 100
Tìm kiếm trên cây nhị phân
Tìm một node trên cậy nhị phân tốn thời gian là O(log(n))
. Giải thuật là tìm kiếm nhị phân.
Giải thuật
|
|
Cây tìm kiếm nhị phân tự cân bằng
Cây tìm kiếm nhị phân tự cân bằng là cây thỏa mãn hai điều kiện: nó là cây tìm kiếm nhị phân và nó tự cân bằng (sau khi thêm, xóa một phần tử). Cây cân bằng là cây khi chiều cao của hai cây con sai khác nhau không quá 1. Có hai cây tìm kiếm nhị phân tự cân bằng là cây AVL và cây đỏ đen.
Có hai phép toán quan trọng trong cây tìm kiếm nhị phân được cài đặt đó là phép chèn và phép xóa. Thuật toán của hai phép này luôn đảm bảo khi chèn hoặc xóa một node thì cây mới tạo ra sẽ luôn là cây tìm kiếm nhị phân tự cân bằng.
Việc cài đặt cây tìm kiếm nhị phân cân bằng khá phức tạp nên bạn có thể tự cài đặt.