Cây đỏ đen
Bách khoa toàn thư mở Wikipedia
Cây đỏ đen (tiếng Anh: red-black tree) là một dạng cây tìm kiếm nhị phân tự cân bằng, một cấu trúc dữ liệu được sử dụng trong khoa học máy tính. Cấu trúc ban đầu của nó được đưa ra vào năm 1972 bởi Rudolf Bayer. Ông gọi chúng là các "B-cây cân bằng" còn tên hiện nay được đưa ra từ 1978 bởi Leo J. Guibas và Robert Sedgewick. Nó là cấu trúc phức tạp nhưng cho kết quả tốt vế thời gian trong trường hợp xấu nhất. Các phép toán trên chúng như tìm kiếm (search), chèn (insert), và xóa (delete) trong thời gian O (log n), trong đó n là số các phần tử của cây.
[sửa] Thuật ngữ
Một cây đỏ-đen là một cây nhị phân, là một cấu trúc dữ liệu trong khoa học máy tính để tổ chức các thành phần dữ liệu có thể so sánh, chẳng hạn các số. Trong cây nhị phân các thành phần dữ liệu được đưa vào các nút (node). Trong các nút có một nút nằm ở vị trí khởi đầu không là con của nút nào được gọi là gốc. Các nút khác đều là con của một nút nào đó và có không quá hai con. Từ nút gốc có một đường đi duy nhất đến mỗi nút khác trên cây.
Các nút không có con được gọi là lá (leaf node). Trong cây đỏ đen, các lá được gán giả là null; nghĩa là chúng không chưa bất kỳ dữ liệu nào.
Các cây tìm kiếm nhị phân, bao gồm cả cây đỏ-đen, thỏa mãn tính chất: mỗi nút được gán một giá trị sao cho giá trị trên mỗi nút nhỏ hơn hoặc bằng tất cả các giá trị trên các nút thuộc cây con phải và lớn hơn các giá trị nằm trên cây con trái. Điều đó làm cho quá trình tìm kiếm nhanh hơn.
[sửa] Thuận lợi khi sử dụng
Các cây đỏ đen cùng với cac cây AVL, thường đảm bảo một thời gian tốt nhất trong trường hợp xấu nhất cho các phép toán chèn (insertion), xóa (deletion),và tìm kiếm (search). .
Các cây đỏ-đen là một đồng cấu của các cây 2-3-4 . Ngược lại, cho một cây 2-3-4, có ít nhất một cây đỏ-đen với các thầnh phần dữ liệu theo đúng thứ tự ấy. Các phép chèn và xóa trên cây 2-3-4 cũng tương đương với đổi màu và quay trong cây đỏ đen. Điều này làm cho các cây 2-3-4 có một công cụ quan trọng tương đương lôgic với cây đỏ-đen. Do đó các giải thuật trên các cây 2-3-4 tuy có trươc cây đỏ-đen nhưng thường ít được dùng hơn cây đỏ đen.
[sửa] Các tính chất
Mỗi nút của cây đỏ-đen có thuộc tinh "màu" nhận một trong hai giá trị "đỏ" hoặc "đen". Ngoài ra:
- Một nút hoặc là đỏ hoặc đen.
- Gốc là đen.
- Tất cả các lá là đen.
- Cả hai con của mọi nút đỏ là đen. (và suy ra mọi nút đỏ có nút cha là đen.)
- Tất cả các đường đi từ một nút đã cho tới các lá chứa một số như nhau các nút đen.