CTDL_08_CayNhiPhanCB

17
u trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Click To Edit Master Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 1 NỘI DUNG CÂY NHỊ PHÂN TÌM KIẾM CÂN BẰNG

description

Cây nhị phân tìm kiếm cân bằng

Transcript of CTDL_08_CayNhiPhanCB

Dãy – Danh sáchCU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
Ðnh ngha
Cây nh phân tìm kim cân bng là cây mà ti mi nút ca nó cao ca cây con trái và ca cây con phi chênh lch không quá mt
Ví d:
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
T chc d liu
Ch s cân bng = lch gia cây trái và cây phi ca mt nút
Các giá tr hp l :
CSCB(p) = 0 cao cây trái (p) = cao cây phi (p)
CSCB(p) = 1 cao cây trái (p) < cao cây phi (p)
CSCB(p) = -1 cao cây trái (p) > cao cây phi (p)
Cu trúc d liu và thut gii
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
#define EH 0 //cây con trái bng cây con phi
#define RH 1 //cây con phi cao hn
typedef struct tagAVLNode
Data key;
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
Cây mt cân bng ti nút T
TH1: Left-Left
TH2: Left-Right
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
Cây mt cân bng ti nút T
TH3: Right-Right
TH4: Right-Left
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
Các thao tác trên cây cân bng
Khi thêm hay xoá 1 nút trên cây, c th làm cho cây mt tính cân bng, khi y ta phi tin hành cân bng li.
Cây có kh nng mt cân bng khi thay i chiu cao:
Lch nhánh trái, thêm bên trái
Lch nhánh phi, thêm bên phi
Lch nhánh trái, hy bên phi
Lch nhánh phi, hy bên trái
Cân bng li cây : tìm cách b trí li cây sao cho chiu cao 2 cây con cân i:
Kéo nhánh cao bù cho nhánh thp
Phi bo m cây vn là Nh phân tìm kim
Cu trúc d liu và thut gii
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
T
R
T1
R1
L1
T
R
T1
R1
L1
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
void LL(AVLTree &T)
T1->balFactor=EH; break;
T1->balFactor =RH; break;
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
T
R
T1
T2
L1
R21
L21
T2
T
T1
L21
L1
R
R21
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
void LR(AVLTree &T)
T1->balFactor=EH; break;
T1->balFactor=EH; break;
T1->balFactor= LH; break;
Cu trúc d liu và thut gii
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
T
T1
L
R1
L1
R1
T1
T
L
L1
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
void RR(AVLTree &T)
T-> balFactor = EH; break;
T1-> balFactor = LH; break;
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
T
T1
L
R1
T2
R21
L21
T1
R1
T2
R21
T
L
L21
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
void RR(AVLTree &T)
T1-> balFactor = EH; break;
T1-> balFactor = EH; break;
T1-> balFactor = RH; break;
Cu trúc d liu và thut gii
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
Nu cây tng trng chiu cao
Ln ngc v gc phát hin nút b mt cân bng
Tin hành cân bng li nút ó bng thao tác cân bng thích hp
Vic cân bng li ch cn thc hin 1 ln ni mt cân bng
Cu trúc d liu và thut gii
CU TRÚC D LIU VÀ GII THUT 1
Click To Edit Master Title Style
CU TRÚC D LIU VÀ GII THUT 1
*
Nu cây gim chiu cao:
Ln ngc v gc phát hin nút b mt cân bng
Tin hành cân bng li nút ó bng thao tác cân bng thích hp
Tip tc ln ngc lên nút cha…