Tìm kiếm là một đòi hỏi rất thường xuyên và làm thế nào để tìm kiếm được nhanh nhất luôn được đề cao trong đời sống hàng ngày cũng như trong xử lý tin học. Vấn đề tìm kiếm nói một cách tổng quát chính là tìm một đối tượng nào đó, thỏa mãn một số yêu cầu đã được biết trước trong tập lớn các đối tượng xác định. Có nhiều phương pháp tìm kiếm cơ bản và phổ biến. Đối với tìm kiếm bên trong (dữ liệu ở bộ nhớ trong), tìm kiếm nhị phân lại là một phương pháp khá thông dụng và phổ biến, chi phí ít và đạt kết quả tốt. Tuy nhiên, khi sử dụng tìm kiếm nhị phân, dãy khóa đã phải sắp xếp rồi, nghĩa là thời gian sắp xếp cũng phải kể đến. Nếu dãy khóa biến động chị phí nổi lên rất rõ và chính điều ấy bộc lộ nhược điểm của phương pháp này.
Để khắc phục nhược điểm vừa nêu trên đối với tìm kiếm nhị phân và đáp ứng yêu cầu tìm kiếm đối với một bảng biến động, một phương pháp mới được hình thành dựa trên tổ chức cây nhị phân mà ta gọi là cây nhị phân tìm kiếm. Cây nhị phân tìm kiếm chỉ làm tốt khi cây đó là một cây đã cân bằng còn đối với trường hợp cây là một cây suy biến thì việc tìm kiếm cũng trở lên vô cùng tốn thời gian.
Vậy câu hỏi đặt ra ở đây là làm như thế nào để tạo ra được một cây cân bằng?
Cây đỏ đen là một phương pháp để giải quyết vấn đề này. Nó được xây dựng dựa trên các tính chất của cơ bản của cây nhị phân tìm kiếm. Tuy nhiên, nó lại có đặc tính riêng nổi bật là khả năng tự cân bằng, từ đó giúp cho thời gian tìm kiếm đều ít đối với tất cả mọi trường hợp.
Như vậy bài toán đỏ đen được phát biểu như sau:
Cho n dãy khóa bất kì tạo ra một cây nhị phân tìm kiếm cân bằng (hay số nút bên trái gần bằng với số nút bên phải).
39
Nhiệm vụ của bài toán cần giải quyết là khi thêm hoặc xóa một nút trên cây thì cây vẫn luôn luôn tạo ra một cây nhị phân tìm kiếm cân bằng (hay số nút bên trái gần bằng với số nút bên phải).