Cấu trúc cây khái niệm - cây nhị phân tìm kiếm

  • Upload
    le-ha

  • View
    65

  • Download
    1

Embed Size (px)

Citation preview

Ging vin:

Vn Ch Nam Nguyn Th Hng Nhung ng Nguyn c Tin

2

Khi nim

Php duyt cy v Biu din cyCy nh phn v Cy nh phn tm kim Cy AVL Cy AACu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

1

3

Cu trc d liu v gii thut - HCMUS 2011

4

Tree Search tree Binary search tree Balanced tree AVL tree AA tree Red-Black tree Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

2

5

ab d i o j p e k q f l g m c h n

Cu trc d liu v gii thut - HCMUS 2011

6

Cu trc d liu v gii thut - HCMUS 2011

S t chc

Cy th mc

FIT-HCMUS

3

7

Cy (cy c gc) c xc nh quy nh sau:Tp hp gm 1 nh l mt cy. Cy ny c gc l nh duy nht ca n. 2. Gi T1, T2, Tk (k 1) l cc cy khng ct nhau c gc tng ng r1, r2, rk. Gi s r l mt nh mi khng thuc cc cy Ti. Khi , tp hp T gm nh r v cc cy Ti to thnh mt cy mi vi gc r. Cc cy T1, T2, Tk c gi l cy con ca gc r.1.Cu trc d liu v gii thut - HCMUS 2011

8

Nt gc

r1

r2

rk

T1

T2

Tk

Cy con

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

4

9

node: nh root: gc cy leaf: l inner node/internal node: nh trong parent: nh cha child: nh con path: ng i

Cu trc d liu v gii thut - HCMUS 2011

10

Nt gc

r1

r2

rk k1 k2

T1

T2

Tk k3 k4 k5

Cy conNt lCu trc d liu v gii thut - HCMUS 2011

ng i

k6

FIT-HCMUS

5

11

degree/order: bc Bc

ca node: S con ca node Bc ca cy: bc ln nht trong s cc con

depth/level: su/mc Mc

( su)ca node: Chiu di ca ng i t node gc n node cng thm 1. cao cy:rng: 0 khc rng: Mc ln nht gia cc node ca cy

height: chiu cao Chiu Cy Cy

Cu trc d liu v gii thut - HCMUS 2011

12

Bc = k

Nt gc cao = 4

Bc = 2

r1

r2

rk k1 k2

T1

T2

Tk k3 k4 k5

Cy conNt lCu trc d liu v gii thut - HCMUS 2011

ng i

k6

FIT-HCMUS

6

13

Cu trc d liu v gii thut - HCMUS 2011

14

m bo n mi node trn cy chnh xc mt ln mt cch c h thng. Nhiu thao tc x l trn cy cn phi s dng n php duyt cy. Cc php c bn:

Duyt trc (Pre-order) Duyt gia (In-order) Duyt sau (Post-order)Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

7

15

Parent(a)?

Tm cha mt nh. Parent(x)

Parent(b) = a

EldestChild(c) = g

Tm nh con tri nht. EldestChild(x)

b

c

Tm nh k phi. NextSibling(x)

d

e

f

g

h

NextSibling(g) = h

iCu trc d liu v gii thut - HCMUS 2011 NextSibling(h)?

16

Duyt trc abdeijcfgkh

Duyt theo chiu su

Duyt gia dbiejafckghd

b

c

e

f

g

h

Duyt sau dijebfkghcai j k

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

8

17

Pre-order void Preorder(NODE A)

Post-order void Postorder(NODE A) { NODE B; B = EldestChild(A); while (B != ) { Postorder(B); B = NextSibling(B); } Visit(A); }

{NODE B; Visit(A); B = EldestChild(A); while (B != ) {

Preorder(B);B = NextSibling(B); } }

Cu trc d liu v gii thut - HCMUS 2011

18

In-Order void Inorder(NODE A) { NODE B; B = EldestChild(A); if (B != ) { Inorder(B); B = NextSibling(B); } Visit(A); while (B != ) { Inorder(B); B = NextSibling(B); } }Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

9

19

Cu trc d liu v gii thut - HCMUS 2011

20

info 1 a

child

id next 2 4 6 9 3 5 7 10 8

23 4 5 6

bc d e f

b11

c

78 9 10 11

gh i j k

d

e

f

g

h

iCu trc d liu v gii thut - HCMUS 2011

j

k

FIT-HCMUS

10

21

A

Root

B

C

D

E

F

G

H

I

J

K

Cu trc d liu v gii thut - HCMUS 2011

22

Info 1 2 3 4 5 6 7 8 9 10 11 a b c d e f g h i j k

Eldest Child 2 4 6 0 9 0 11 0 0 0 0

Next Sibling 0 3 0 5 0 7 8 0 10 0 0

b

c

d

e

f

g

h

i

j

k

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

11

23

A

Root

B

C

D

E

F

G

H

I

J

K

Cu trc d liu v gii thut - HCMUS 2011

24

Info 1 2 3 4 5 6 7 8 9 10 11 a b c d e f g h i j k

Parent 0 1 1 2 2 3 3 3 5 5 7

b

c

d

e

f

g

h

i

j

k

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

12

25

Binary tree

Cu trc d liu v gii thut - HCMUS 2011

26

L cy m mi nh c bc ti a bng 2. Cc cy con c gi l cy con tri v cy con phi. C ton b cc thao tc c bn ca cy. struct{

b

c

d

e

f

g

NODE

h

i

j

Data key; NODE *pLeft; NODE *pRight; };Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

13

27

Cy t chc thi u Cy biu thc s hc Lu tr v tm kim thng tin.4

*

+

-

1

sin

3

4

30

Cy biu thc: 4 * (3 4) + (1 + sin(30))Cu trc d liu v gii thut - HCMUS 2011

28

1.

2.

3.

Cy nh phn tm kim l cy nh phn tha mn cc iu kin sau: Kha ca cc nh thuc cy con tri nh hn kha gc. Kha ca gc nh hn kha cc nh thuc cy con phi. Cy con tri v cy con phi ca gc cng l cy nh phn tm kim.

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

14

29

4

10

2

6

9

23

5

7

20

Cu trc d liu v gii thut - HCMUS 2011

30

c im: C

th t Khng c phn t trng D dng to d liu sp xp, v tm kim

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

15

Cu trc d liu v gii thut - HCMUS 2011

32

Thm phn t (kha) Tm kim phn t (kha) Xa phn t (kha) Sp xp Duyt cy Quay cyCu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

16

33

Bc 1: Bt u t gc Bc 2: So snh d liu (kha) cn thm vi d liu (kha) ca node hin hnh. Nu

bng nhau => tn ti. Kt thc Nu nh hn => i qua nhnh tri, Tip bc 2. Nu ln hn => i qua nhnh phi, Tip bc 2.

Bc 3: Khng th i tip na => To node mi vi d liu (kha) cn thm. Kt thcCu trc d liu v gii thut - HCMUS 2011

34

Bc 1: Bt u t gc

Bc 2: So snh d liu (kha) cn tm vi d liu (kha) ca node hin hnh. Nu

bng nhau => Tm thy. Kt thc Nu nh hn => i qua nhnh tri, Tip bc 2. Nu ln hn => i qua nhnh phi, Tip bc 2.

Bc 3: Khng th i tip na => Khng tm thy. Kt thc.Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

17

35

Tm n node cha d liu (kha) cn xa. Xt cc trng hp: Node

l Node ch c 1 con Node c 2 con: dng phn t th mng xa th.

Cu trc d liu v gii thut - HCMUS 2011

36

Cho cy nh phn tm kim

Th t duyt cc node nu s dng Duyt gia?1

8

19

9

16

Nu nhn xt C

th d dng to d liu sp xp nu dng php duyt gia8 9 13 14 15 16 18

13 1419

18

1

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

18

37

Duyt trc

4 2 1 3 23 20 25

Cu trc d liu v gii thut - HCMUS 2011

38

Duyt gia

4 2 1 3 23 20 25

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

19

39

Duyt sau

4 2 1 3 23 20 25

Cu trc d liu v gii thut - HCMUS 2011

40

P

Quay tri cy P

P

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

20

41

Quay tri cy P P 18 35

8

35 20 50 8

18 20

50

55

55

Cu trc d liu v gii thut - HCMUS 2011

42

Quay phi cy P

P

P

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

21

43

Quay phi cy P P 50 37 36 40

4037 45

5565

50 55

45

65 36

Cu trc d liu v gii thut - HCMUS 2011

44

i vi php tm kim: Trng

hp tt nht: mi nt (tr nt l) u c 2 con: O(log2n) (chnh l chiu cao ca cy). Trng hp xu nht: cy tr thnh danh sch lin kt: O(n). Trng hp trung bnh l bao nhiu? O(log2n)

Cu trc d liu v gii thut - HCMUS 2011

FIT-HCMUS

22

45

To cy nh phn tm kim theo th t nhp nh sau: 1, 8, 9, 12, 14, 15, 16, 18, 19

Cu trc d liu v gii thut - HCMUS 2011

46

To cy nh phn tm kim theo th t nhp nh sau: 1, 8, 9, 12, 14, 15, 16, 18, 191 8 9 12 14 15 16 18Cu trc d liu v gii thut - HCMUS 2011

19

FIT-HCMUS

23