cÄy nhj phÄn tim kiem cÄn bangdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · chỉ...
TRANSCRIPT
![Page 1: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/1.jpg)
NÖI DUNG■
CÄY NHj PHÄN TIM KIEM CÄN BANG I
![Page 2: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/2.jpg)
Định nghĩaCây nhị phân tìm kỉếm cân bằng ỉà cây mà tạì mỗỉ nút của nó độ cao của cây con trái và của cây con phảỉ chênh ỉệch không quá môt
44
![Page 3: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/3.jpg)
Tổ chức dữ liệu■
Chỉ số cân bằng = độ lệch giữa cây trái vàcây phải của một nútCác giá trị hỢp lệ :- CSCB(p) = 0 « ĐỘ cao cây trái (p) = ĐỘ
cao cây phải (p)- CSCB(p) = 1 ĐỘ cao cây trái (p) < ĐỘ
cao cây phải (p)- CSCB(p) = -1 <̂ > ĐỘ cao cây trái (p) > ĐỘ
cao cây phải (p)
![Page 4: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/4.jpg)
và th
uật
giải
TỔ chức dữ liệu(tt)typedef struct tagAVLNode {
char balFactor; //chỉ sô cản bằngData key;struct tagAVLNode* pLeft; struct tagAVLNode* pRight;
}AVLNode;typedef AVLNode*AVLT ree;
![Page 5: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/5.jpg)
![Page 6: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/6.jpg)
cấu trúc dữ liệu và thuật giải
C2OrH
ç 0 3
CQ _ □ ■©>■0 ç -G
r* Qj
0 Ể □ G1 □
(G Qo
![Page 7: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/7.jpg)
cấu
trúc
dữ liệ
u và
thuậ
t gi
ảiuac iruong nọp m ai can oang ao
lệch phải
![Page 8: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/8.jpg)
Các thao tác trên cây cân bằng^ K h i thêm hay xoá 1 nút trên cây, cĩ thể làm cho cây mất
tính cân bằng, khi ấy ta phải tiến hành cân bằng lại.
Cây có khả năng mất cân bằng khi thay đổi chiều cao:- Lệch nhánh trái, thêm bên trái■ '
- Lệch nhánh phải, thêm bên phải- Lệch nhánh trái, hủy bên phải- Lệch nhánh phải, hủy bên trái
Cân bằng lại cây : tìm cách bố trí lại cây sao cho chiều cao 2 cây con cân đối:- Kéo nhánh cao bù cho nhánh thấp- Phải bảo đảm cây vẫn là Nhị phân tìm kiếm
![Page 9: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/9.jpg)
Các trường hợp mất cân bằng do lệch trái1.1 Cây T lệch trái, cây trái TI của T cũng
lệch trái■
![Page 10: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/10.jpg)
Các trường hợp mất cân bằng do lệch trái1. 2 Cây T lệch trái, cây trái TI của T không lệch
![Page 11: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/11.jpg)
Các trường hợp mất cân bằng do lệch trái1. 3 Cây T lệch trái, cây trái TI của T lệch phải
![Page 12: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/12.jpg)
Các trường hợp mất cân bằng do lệch phải1.1 Cây T lệch phải, cây phải TI của T cũng lệch
phải
![Page 13: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/13.jpg)
Các trường hợp mất cân bằng do lệch phải1. 2 Cây T lệch phải, cây phải TI của T không lệch
![Page 14: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/14.jpg)
cấu
trúc
dữ liệ
u và
thuậ
t gi
ảiuac truong nọp m ai can oang ao
lệch phải' H L V T » ! ' ■ [ H i I - i n ■ ■ I l I I • I M n > ! ’■ « I I I « T l o r hÉẩV/ỉ
![Page 15: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/15.jpg)
Thêm 1 nútThêm bình thường như trường hỢp câyNPTKNếu cây tăng trưởng chiếu cao:- Lần ngược về gốc để phát hiện nút bị mất cân
bằng- Tiến hành cân bằng lại nút đó bằng thao tác cân
bằng thích hỢpViệc cân bằng lai chỉ cẩn thưc hiên 1 lẩn
■ o ■ ■ ■
tại nơi mất cân bằng
![Page 16: CÄY NHj PHÄN TIM KIEM CÄN BANGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · Chỉ số cân bằng = độ lệch giữa cây trái và ... - Kéo nhánh cao bù cho](https://reader033.vdocuments.net/reader033/viewer/2022041803/5e52e2520e2e6b0867105d8f/html5/thumbnails/16.jpg)
Hủy 1 nút• Hủy bình thường như trường hợp cây NPTK• Nếu cây giảm chiều cao:
- Lần ngược về gốc để phát hiện nút bị mất cân bằng- Tiến hành cân bằng lại nút đó bằng thao tác cân
bằng thích hợp-T iếp tục lần ngược lên nút cha...
• Việc cân bằng lại co thể lan truyền lên tận gốc