<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Giảng viên : Võ Hà Quang Định
Email –
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
Định nghĩa
Cây cân bằng HOÀN TOÀN là cây nhị
phân mà tại mỗi node, chiều cao của
cây con trái chênh lệch không quá 01 so
với chiều cao của cây con phải, và
ngược lại.
Ví dụ
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
Nhận xét
Tình trạng cân bằng của cây dễ bị vỡ
Nếu gọi
<sub>h là chiều cao của cây (số tầng)</sub>
<sub>N là số node trong 1 cây</sub>
Thì chiều cao của cây cân bằng có N
node là:
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
Cây AVL
AVL - Adelson-Velskii và Landis (1962)
<sub>Nhà toán học người Nga</sub>
<sub>Đề xuất 1 dạng cân bằng của cây</sub>
Một số dạng cây cân bằng khác:
<sub>Cây đỏ - đen (red-black tree)</sub>
<sub>B-Tree</sub>
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
Chiều cao của cây
Cây AVL có chiều cao h, hỏi có tối thiểu
bao nhiêu node?
Gọi N(h) là số node tối thiểu của cây có
chiều cao h
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
Cấu trúc dữ liệu cây AVL
Để xác định tính cân bằng của cây,
tại mỗi node sẽ có thêm thông tin về
đô cao/nặng của cây con.
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7></div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
CTDL AVL (tt)
Trong đó:
tại Node lá: leftHeight = rightHeight = -1
tại Node:
Height = MAX(Nodecon.LeftHeight,Nodecon.RightHeight) + 1
<sub>Ví dụ: xem bài ví dụ Example-12-BinaryTree-AVL</sub>
<sub>Phương pháp khác:</sub>
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
Trường hợp mất cân
bằng
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
Trường hợp mất cân
bằng
</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>
Trường hợp mất cân
bằng
</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>
Trường hợp mất cân
bằng
</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>
Hướng giải quyết
Trường hợp 1
</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>
Trường hợp mất cân
bằng
Trường hợp 2
</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>
Trường hợp mất cân
bằng
Trường hợp 3
</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>
Trường hợp mất cân
bằng
Trường hợp 4
</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17></div>
<!--links-->
EXERCISES FOR EXECELLENT STUDENTS 9.doc