Вы находитесь на странице: 1из 17

CU

GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

NIMaster
DUNGTitle Style
Click To Edit

CY NH PHN TM KIM CN BNG

nh
ngha
Click
To Edit Master Title Style
Cy nh phn tm kim cn bng l cy m ti mi nt
ca n cao ca cy con tri v ca cy con phi
chnh lch khng qu mt

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

44

V d:

23

13

88

59

37

15

30

40
2

55

10
8

71

T Click
chc d
To liu
Edit Master Title Style

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

Ch s cn bng = lch gia cy tri v


cy phi ca mt nt
Cc gi tr hp l :
CSCB(p) = 0

cao cy phi (p)


CSCB(p) = 1

cao cy phi (p)


CSCB(p) = -1
cao cy phi (p)

cao cy tri (p) =


cao cy tri (p) <
cao cy tri (p) >

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

T Click
chc d
To liu(tt)
Edit Master Title Style
#define LH -1 //cy con tri cao hn
#define EH 0 //cy con tri bng cy con phi
#define RH 1 //cy con phi cao hn
typedef struct tagAVLNode
{ char balFactor; //ch s cn bng
Data key;
struct tagAVLNode*
pLeft;
struct tagAVLNode*
pRight;
}AVLNode;
typedef AVLNode *AVLTree;
4

CcClick
trng
mt
cn bng
do lch
tri
Tohp
Edit
Master
Title
Style
Cy mt cn bng ti nt T
T

TH1: Left-Left

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

T1

L1

TH2: Left-Right
R

T1

R1

T2

L1

L21
5

R21

CcClick
trng
mt
cn bng
do lch
phi
Tohp
Edit
Master
Title
Style
Cy mt cn bng ti nt T
TH3: Right-Right

TH4: Right-Left
T

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

T
L

T1

L1

T1

T2

R1

L21
6

R1

R21

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

CcClick
thao To
tcEdit
trn Master
cy cnTitle
bngStyle
Khi thm hay xo 1 nt trn cy, c th lm cho cy
mt tnh cn bng, khi y ta phi tin hnh cn bng
li.
Cy c kh nng mt cn bng khi thay i chiu cao:
Lch nhnh tri, thm bn tri
Lch nhnh phi, thm bn phi
Lch nhnh tri, hy bn phi
Lch nhnh phi, hy bn tri
Cn bng li cy : tm cch b tr li cy sao cho chiu
cao 2 cy con cn i:
Ko nhnh cao b cho nhnh thp
Phi bo m cy vn l Nh phn tm kim
7

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

CnClick
bngTo
liEdit
trng
hp 1Title Style
Master
T
T1

T1

L1
R
L1

R1
R1
R

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

CiClick
t cn
li cho trng
hp 1
To bng
Edit Master
Title Style
void LL(AVLTree &T)
{
AVLNode *T1=T->pLeft;
T->pLeft = T1->pRight;
T1->pRight=T;
switch(T1-> balFactor)
{ case LH: T-> balFactor =EH;
T1->balFactor=EH; break;
case EH:
T->balFactor=LH;
T1->balFactor =RH; break;
}
T=T1;
}
9

CnClick
bngTo
liEdit
trng
hp 2Title Style
Master
T

T2

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

T1

T1

T2

L1

L21

L1
R21

10

L21

R21

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

CiClick
t cn
li cho trng
hp 2
To bng
Edit Master
Title Style
void LR(AVLTree &T)
{ AVLNode *T1=T->pLeft;
AVLNode *T2=T1->pRight;
T->pLeft=T2->pRight;
T2->pRight=T;
T1->pRight= T2->pLeft;
T2->pLeft = T1;
switch(T2->balFactor)
{ case LH:
T->balFactor=RH;
T1->balFactor=EH; break;
case EH: T->balFactor = EH;
T1->balFactor=EH; break;
case RH: T->balFactor =EH;
T1->balFactor= LH; break;
}T2->balFactor =EH; T=T2}
11

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

CnClick
bngTo
liEdit
trng
hp 3Title Style
Master
T
T1

L
T1
T

L1
L

12

R1

R1
L1

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

CiClick
t cn
li cho trng
hp 3
To bng
Edit Master
Title Style
void RR(AVLTree &T)
{ AVLNode *T1= T->pRight;
T->pRight=T1->pLeft;
T1->pLeft=T;
switch(T1-> balFactor)
{
case RH:
T-> balFactor = EH;
T-> balFactor = EH; break;
case EH:
T-> balFactor = RH;
T1-> balFactor = LH; break;
}
T=T1
}
13

CnClick
bngTo
liEdit
trng
hp 4Title Style
Master
T
T2
L

T1

T1

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

T
T2

R1
L

L21

R21

14

L21

R21

R1

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

CiClick
t cn
li cho trng
hp 4
To bng
Edit Master
Title Style
void RR(AVLTree &T)
{ AVLNode *T1= T->pRight;
AVLNode *T2=T1->pLeft;
T->pRight = T2->pLeft;
T2->pLeft = T;
T1->pLeft = T2->pRight;
T2->pRight = T1;
switch(T2-> balFactor)
{
case RH:
T-> balFactor = LH;
T1-> balFactor = EH; break;
case EH:
T-> balFactor = EH;
T1-> balFactor = EH; break;
case LH:
T-> balFactor = EH;
T1-> balFactor = RH; break;
}
T2-> balFactor =EH; T=T2;}
15

Thm
1 nt
Click
To Edit Master Title Style
Thm bnh thng nh trng hp cy NPTK
Nu cy tng trng chiu cao

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

Ln ngc v gc pht hin nt b mt cn


bng
Tin hnh cn bng li nt bng thao tc cn
bng thch hp
Vic cn bng li ch cn thc hin 1 ln ni mt
cn bng
16

HyClick
1 ntTo Edit Master Title Style
Hy bnh thng nh trng hp cy NPTK
Nu cy gim chiu cao:

CU
GII
THUT
11
CUTRC
TRC
D
LIU
V
GII
THUT
Cu
trcD
dLIU
liuV
v
thut
gii

Ln ngc v gc pht hin nt b mt cn


bng
Tin hnh cn bng li nt bng thao tc cn
bng thch hp
Tip tc ln ngc ln nt cha

Vic cn bng li co th lan truyn ln tn


gc
17

Вам также может понравиться