BÀI 6: CÂY ĐỎ ĐEN

13 5 0
BÀI 6: CÂY ĐỎ ĐEN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Cây tìm kiếm nhị phân là một cấu trúc lưu trữ dữ liệu tốt với tốc độ tìm kiếm nhanh. Tuy nhiên trong một số trường hợp cây tìm kiếm nhị phân có một số hạn chế. Nó hoạt động tốt nếu dữ liệu được chèn vào cây theo thứ tự ngẫu nhiên. Tuy nhiên, nếu dữ liệu được chèn vào theo thứ tự đã đuợc sắp xếp sẽ không hiệu quả.

BÀI 6: CÂY ĐỎ ĐEN GIỚI THIỆU Cây tìm kiếm nhị phân cấu trúc lưu trữ liệu tốt với tốc độ tìm kiếm nhanh Tuy nhiên số trường hợp tìm kiếm nhị phân có số hạn chế Nó hoạt động tốt liệu chèn vào theo thứ tự ngẫu nhiên Tuy nhiên, liệu chèn vào theo thứ tự đuợc xếp không hiệu Khi trị số cần chèn đuợc xếp nhị phân trở nên khơng cân Khi khơng cân bằng, khả tìm kiếm nhanh (hoặc chèn xóa) phần tử cho Chúng ta khảo sát cách giải vấn đề khơng cân bằng: đỏ đen, tìm kiếm nhị phân có thêm vài đặc điểm Có nhiều cách tiếp cận khác để bảo đảm cho cân bằng: chẳng hạn 2-3-4 Tuy vậy, phần lớn trường hợp, đỏ đen cân hiệu nhất, liệu lưu trữ nhớ tập tin Trước khảo sát đỏ đen, xem lại không cân tạo Hình Các node chèn theo thứ tự tăng dần Những node tự xếp thành đường không phân nhánh Bởi node lớn node chèn vào trước đó, node phải nút trước Khi ấy, bị cân hoàn toàn Độ phức tạp: Khi nhánh, trở thành danh sách liên kết, liệu chiều thay hai chiều Trong trường hợp này, thời gian truy xuất giảm O(N), thay O(log2N) cân Để bảo đảm thời gian truy xuất nhanh cây, cần phải bảo đảm ln ln cân (ít gần cân bằng) Điều có nghĩa node phải có xấp xỉ số node bên phải số node bên trái ĐỊNH NGHĨA CÂY ĐỎ ĐEN Cây đỏ đen nhị phân tìm kiếm (BST) tuân thủ quy tắc sau: (hình 2) (1) Mọi node phải đỏ đen (2) Node gốc node (NIL) phải luôn đen (3) Nếu node đỏ, node phải đen (4) Mọi đường dẫn từ gốc đến phải có số lượng node đen Khi chèn (hay xóa) node mới, cần phải tuân thủ quy tắc -gọi quy tắc đỏ đen Nếu tuân thủ, cân Hình Một ví dụ đỏ đen Số lượng node đen đường dẫn từ gốc đến gọi chiều cao đen (black height) Ta phát biểu quy tắc (4) theo cách khác đường dẫn từ gốc đến phải có chiều cao đen Khai báo cấu trúc: typedef int Data; /* Kiểu liệu khoá */ typedef enum { BLACK, RED } nodeColor; typedef struct NodeTag { nodeColor color; /* Màu node (BLACK, RED) */ Data info; /* Khố sử dụng tìm kiếm */ struct NodeTag *left; /* Con trái */ struct NodeTag *right; /* Con phải */ struct NodeTag *parent; /* Cha */ } NodeType; typedef NodeType *iterator; Bổ đề: Một đỏ đen n-node có chiều cao h

Ngày đăng: 20/05/2021, 11:38

Mục lục

  • 2. ĐỊNH NGHĨA CÂY ĐỎ ĐEN

  • Khai báo cấu trúc:

  • 4.1 Các phép lật màu trên đường đi xuống

  • 4.2. Các phép quay khi chèn node

  • 6. TÍNH HIỆU QUẢ CỦA CÂY ĐỎ ĐEN

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan