TAILIEUCHUNG - Bài giảng Cấu trúc dữ liệu và giải thuật: Cây AVL - Nguyễn Mạnh Hiển (HKI năm 2020-2021)

Bài giảng "Cấu trúc dữ liệu và giải thuật: Cây AVL" cung cấp cho người học các khái niệm cây AVL, đặc điểm, định nghĩa cấu trúc dữ liệu, các kỹ thuật cân bằng cây, chèn phần tử vào cây, xóa phần tử khỏi cây. Mời các bạn cùng tham khảo. | Cây AVL Nguyễn Mạnh Hiển hiennm@ Mở đầu Khi xây dựng cây nhị phân tìm kiếm ta muốn có kiểu cây nào hơn Ví dụ dựng cây từ dãy 3 5 8 20 18 13 22 3 5 13 8 5 20 13 18 3 8 18 22 20 22 Mở đầu tiếp Ta muốn một cây nhị phân tìm kiếm cân đối có độ sâu của cây log n và do đó cho phép chèn và xóa với thời gian chạy O log n trong mọi trường hợp. Cây AVL là một kiểu cây như vậy Cây AVL Adelson-Velskii amp Landis Cây AVL là một cây nhị phân tìm kiếm thỏa mãn điều kiện cân bằng Với mọi nút X chiều cao của hai cây con trái và phải của X sai khác không quá 1. Quy ước cây rỗng có chiều cao -1. 8 5 18 3 13 20 22 Cây nào là cây AVL Chèn và xóa trên cây AVL Thực hiện chèn xóa như trong cây nhị phân tìm kiếm thông thường. Sau khi chèn xóa điều kiện cân bằng có thể bị vi phạm Sửa bằng phép xoay. Sau phép xoay cây trở lại cân bằng. Ví dụ phép chèn Chèn 6 làm điều kiện cân Sửa bằng phép xoay bằng bị vi phạm tại nút 8. quanh nút 8. Vi phạm điều kiện cân bằng Nếu điều kiện cân bằng bị vi phạm những nút nào cần được xoay Chỉ những nút trên đường đi từ điểm chèn ngược về gốc có thể bị ảnh hưởng. Chỉ cần tái cân bằng dùng phép xoay tại nút sâu nhất có điều kiện cân bằng bị vi phạm. Toàn bộ cây sẽ được tái cân bằng. Các trường hợp vi phạm Giả sử nút k là nơi xảy ra vi phạm. Có 4 trường hợp 1. trái-trái chèn vào cây con trái của con trái của k 2. trái-phải chèn vào cây con phải của con trái của k 3. phải-trái chèn vào cây con trái của con phải của k 4. phải-phải chèn vào cây con phải của con phải của k Hai trường hợp 1 và 4 chèn ngoài tương tự nhau Phép xoay đơn để tái cân bằng. Hai trường hợp 2 và 3 chèn trong tương tự nhau Phép xoay kép để tái cân bằng. Kiểu dữ liệu của các nút struct AvlNode T elem AvlNode left AvlNode right int height Chiều cao của nút AvlNode T e AvlNode l AvlNode r int h elem e left l right r height h Hàm trả về chiều cao của nút. int height AvlNode t return t NULL -1 t- gt height Phép xoay đơn trường hợp 1 Thay nút k2 bằng nút k1. Cho nút k2 trở thành con phải .

TỪ KHÓA LIÊN QUAN
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.