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 AA cung cấp cho người đọc các kiến thức về cây AA, cấu trúc dữ liệu cho một nút của cây AA, các biến đổi hiệu chỉnh cây AA,... Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 2Cây AA
Hình 1: Cây có liên kết ngang
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 3Cây AA (cont.)
Định nghĩa 1
I Liên kết thông thường (link) là liên kết giữa một nút cha và
một nút con có mức nhỏ hơn một đơn vị
I Liên kết ngang (horizontal link) là liên kết giữa một nút con
cha và một nút ở cùng một mức
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 4Cây AA (cont.)
Định nghĩa 2
I Mức (Level) của nút lá là 1
I Mức (Level) của nút không có con trái là 1
I Mức (Level) của nút có con trái là là mức của con trái cộng
với một
Lưu ý
tổng quát Đây là một định nghĩa mới
cùng một hàng khi vẽ ra
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 5Cây AA (cont.)
Định nghĩa 3
Cây AA (Arne Andersson Tree) là một cây nhị phân tìm kiếmtrong đó
nó ở cùng mức
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 6I Cây AA chính là một trường hợp đặc biệt của cây đỏ đen
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 7Cấu trúc dữ liệu cho một nút của cây AA
Cấu trúc lưu trữ cho một nút của cây AA
Trang 8Thêm một nút
tử
cây AA
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 9Các biến đổi hiệu chỉnh cây AA
Có hai thao tác chính để hiệu chỉnh một cho cây AA
I Biến đổi lật (skew) dùng để loại bỏ liên kết ngang trái
I Biến đổi chia (split) dùng để loại bỏ hai liên kết ngang phảiliên tiếp
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 10Các biến đổi hiệu chỉnh cây AA (cont.)
Biến đổi skew tương tự như biến đổi right rotation
trái
Spring 2017 Data structure & Algorithm 10
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 11Các biến đổi hiệu chỉnh cây AA (cont.)
Trang 12Các biến đổi hiệu chỉnh cây AA (cont.)
Biến đổi split tương tự như biến đổi left rotation
Spring 2017 Data structure & Algorithm 12
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 13Các biến đổi hiệu chỉnh cây AA (cont.)
Trang 14Minh họa thêm một nút
Thêm phần tử 45 vào cây AA
Trang 15Minh họa thêm một nút (cont.)
Hình 5:Sau khi thêm phần tử 45
Spring 2017 Data structure & Algorithm 15
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 16Minh họa thêm một nút (cont.)
Trang 17Minh họa thêm một nút (cont.)
Trang 18Minh họa thêm một nút (cont.)
Trang 19Minh họa thêm một nút (cont.)
Trang 20Minh họa thêm một nút (cont.)
Trang 21Minh họa thêm một nút (cont.)
Trang 22Spring 2017 Data structure & Algorithm 22
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 23Minh họa xóa một nút
Xóa phần tử 1 khỏi cây AA
Trang 24Minh họa xóa một nút (cont.)
Hình 13:Sau khi xóa phần tử 1
Spring 2017 Data structure & Algorithm 24
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 25Minh họa xóa một nút (cont.)
Hình 14:Giảm mức
Spring 2017 Data structure & Algorithm 25
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 26Minh họa xóa một nút (cont.)
Hình 15:Skew
Spring 2017 Data structure & Algorithm 26
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 27Minh họa xóa một nút (cont.)
Hình 16:Skew
Spring 2017 Data structure & Algorithm 27
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 28Minh họa xóa một nút (cont.)
Hình 17:Thực hiện một số split
Spring 2017 Data structure & Algorithm 28
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 30Phân tích chi phí bộ nhớ theo n (số lượng nút của cây)
Spring 2017 Data structure & Algorithm 30
CuuDuongThanCong.com https://fb.com/tailieudientucntt