Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên
Số trang: 38
Loại file: pdf
Dung lượng: 811.26 KB
Lượt xem: 8
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL" trình bày một số vấn đề của cây nhị phân tìm kiếm, cây nhị phân tìm kiếm cân bằng, các phép biến đổi, thuật toán DSW,... Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên CẤU TRÚC DỮ LIỆU CÂY AVL Bùi Tiến Lên 01/01/2017CuuDuongThanCong.com https://fb.com/tailieudientucntt Một số vấn đề của cây nhị phân tìm kiếm Vấn đề Khi thực hiện các thao tác trên cây nhị phân tìm kiếm chẳng hạn như thêm, xóa có thể dẫn đến cây mất cân bằng. Dẫn đến cây nhị phân tìm kiếm không còn hiệu quả Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 2 Một số vấn đề của cây nhị phân tìm kiếm (cont.) Ví dụ 1 Tạo cây nhị phân tìm kiếm từ dãy các số {4, 3, 2, 1} ta sẽ được 4 3 2 1 Hình 1: Cây tuyến tính Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 3 Cây nhị phân tìm kiếm cân bằng Định nghĩa 1 Cây cân bằng tối ưu (perfect tree) là cây có chiều cao h = log2 (n + 1) với n là số nút của cây Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 4 Cây nhị phân tìm kiếm cân bằng (cont.) Ví dụ 2 Cây hoàn chỉnh là một cây cân bằng tối ưu Hình 2: Cây nhị phân tìm kiếm hoàn chỉnh Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 5 Cây nhị phân tìm kiếm cân bằng (cont.) Ý tưởng Có hai chiến lược cân bằng: I Cân bằng theo chu kỳ hoạt động I Cân bằng theo thao tác cập nhật Đa số kỹ thuật sử dụng biến đổi xoay để cân bằng lại Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 6 Các phép biến đổi Để duy trì được sự cân bằng trong cây T , các nhà lập trình thường sử dụng các phép biến đổi sau I Phép xoay trái (left rotation) I Phép xoay phải (right rotation) Định lý 1 Các phép biến đổi xoay trái và xoay phải không làm mất đi tính chất “tìm kiếm” của cây Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 7 Các phép biến đổi (cont.) Thực hiện xoay trái giữa hai nút P và N ; trong đó, N là nút con phải của P P N T1 N P T3 T2 T3 T1 T2 (a) trước khi xoay (b) sau khi xoay Hình 3: Thao tác xoay trái Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 8 Các phép biến đổi (cont.) Thực hiện xoay phải giữa hai nút P và N ; trong đó, N là nút con trái của P P N N T3 T1 P T1 T2 T2 T3 (a) trước khi xoay (b) sau khi xoay Hình 4: Thao tác xoay phải Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 9 Các phép biến đổi (cont.) 15 15 6 18 7 18 3 7 17 19 6 13 17 19 2 4 13 3 9 9 2 4 Hìn ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên CẤU TRÚC DỮ LIỆU CÂY AVL Bùi Tiến Lên 01/01/2017CuuDuongThanCong.com https://fb.com/tailieudientucntt Một số vấn đề của cây nhị phân tìm kiếm Vấn đề Khi thực hiện các thao tác trên cây nhị phân tìm kiếm chẳng hạn như thêm, xóa có thể dẫn đến cây mất cân bằng. Dẫn đến cây nhị phân tìm kiếm không còn hiệu quả Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 2 Một số vấn đề của cây nhị phân tìm kiếm (cont.) Ví dụ 1 Tạo cây nhị phân tìm kiếm từ dãy các số {4, 3, 2, 1} ta sẽ được 4 3 2 1 Hình 1: Cây tuyến tính Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 3 Cây nhị phân tìm kiếm cân bằng Định nghĩa 1 Cây cân bằng tối ưu (perfect tree) là cây có chiều cao h = log2 (n + 1) với n là số nút của cây Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 4 Cây nhị phân tìm kiếm cân bằng (cont.) Ví dụ 2 Cây hoàn chỉnh là một cây cân bằng tối ưu Hình 2: Cây nhị phân tìm kiếm hoàn chỉnh Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 5 Cây nhị phân tìm kiếm cân bằng (cont.) Ý tưởng Có hai chiến lược cân bằng: I Cân bằng theo chu kỳ hoạt động I Cân bằng theo thao tác cập nhật Đa số kỹ thuật sử dụng biến đổi xoay để cân bằng lại Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 6 Các phép biến đổi Để duy trì được sự cân bằng trong cây T , các nhà lập trình thường sử dụng các phép biến đổi sau I Phép xoay trái (left rotation) I Phép xoay phải (right rotation) Định lý 1 Các phép biến đổi xoay trái và xoay phải không làm mất đi tính chất “tìm kiếm” của cây Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 7 Các phép biến đổi (cont.) Thực hiện xoay trái giữa hai nút P và N ; trong đó, N là nút con phải của P P N T1 N P T3 T2 T3 T1 T2 (a) trước khi xoay (b) sau khi xoay Hình 3: Thao tác xoay trái Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 8 Các phép biến đổi (cont.) Thực hiện xoay phải giữa hai nút P và N ; trong đó, N là nút con trái của P P N N T3 T1 P T1 T2 T2 T3 (a) trước khi xoay (b) sau khi xoay Hình 4: Thao tác xoay phải Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 9 Các phép biến đổi (cont.) 15 15 6 18 7 18 3 7 17 19 6 13 17 19 2 4 13 3 9 9 2 4 Hìn ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Bài giảng Cấu trúc dữ liệu Cấu trúc dữ liệu và giải thuật Cấu trúc dữ liệu cây AVL Cấu trúc dữ liệu cây Thuật toán DSW Cây nhị phân tìm kiếmGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 318 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 166 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 162 0 0 -
3 trang 162 3 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 156 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 150 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0 -
10 trang 138 0 0
-
57 trang 133 1 0