Professional Documents
Culture Documents
Tree
Cy l mt tp hu hn cc node c cng kiu d liu, trong c 1 node c bit gi l node gc (root). Gia cc node c mt quan h phn cp gi l quan h cha con. nh ngha cy di dng quy: Mt node l 1 cy, node cng l gc (root) ca cy . Cy gm 1 node kt hp vi mt s cy con bn di.
2
Tree
Cy rng: Cy khng c bt k mt node no. Cc node c gi l cng 1 cy khi c ng i gia cc node ny. Mi node trong cy (tr node gc) c duy nht 1 node nm trn n, gi l node cha. Node con: Cc node nm ngay di 1 node. Node l: Cc node khng c con. Mc ca node: node gc c mc l 0. Nu node cha c mc l i th node con c mc l i+1. Chiu cao (su) ca cy: S mc ln nht ca node c trn cy.
3
Tree
su ca mt node: di ng i duy nht gia node gc v node . Mt node ti mc i c di l i. Bc ca node: S cc cy con ca 1 node. Node c bc = 0 gi l node l. Bc ca cy: Bc ln nht ca cc node trong cy. Cy c bc n gi l cy n-phn. Node nhnh: Node c bc khc 0 v khng phi l node gc. Cc node c cng cha gi l anh em. Tp cc cy con ring bit gi l rng. Mt cy c gi l c th t nu cc node con ca 1 node c b tr theo th t no , ngc li gi l cy khng c th t.
4
Tree
Mc 0 Mc 1 Mc 2 Mc 3 Mc 4 Node l root Node cha Node Node con
V d: Cy mc lc ca 1 quyn sch
Sch
C1
C2
C3
1.1
1.2
2.1
2.3
2.2
3.1
3.2
3.1.1
3.1.2
3.1.3
Cy nh phn
Cy nh phn l cy rng hoc l cy m mi node c ti a 2 node con.
Duyt tin t
Nu cy rng => khng lm g. Nu cy khc rng:
Thm node gc. Duyt cy con bn tri. Duyt cy con bn phi.
Hm: void duyet_NLR (Pnode tree) { if (tree!=NULL) { <duyt node gc>; duyet_NLR(tree->left); duyet_NLR(tree->right); } }
10
Duyt trung t
Nu cy rng => khng lm g. Nu cy khc rng:
Duyt cy con bn tri. Thm node gc. Duyt cy con bn phi.
Hm: void duyet_LNR (Pnode tree) { if (tree!=NULL) { duyet_LNR(tree->left); <duyt node gc>; duyet_LNR(tree->right); } }
11
Duyt hu t
Nu cy rng => khng lm g. Nu cy khc rng:
Duyt cy con bn tri. Duyt cy con bn phi. Thm node gc.
Hm: void duyet_LRN (Pnode tree) { if (tree!=NULL) { duyet_LRN (tree->left); duyet_LRN (tree->right); <duyt node gc>; } }
12
Duyt cy
A B C
Duyt tin t: A -> B -> D -> E -> C -> F -> G Duyt trung t: D -> B -> E -> A -> F -> C -> G Duyt hu t: D -> E -> B -> F -> G -> C -> A
13
14
Tm kim
Pnode search (Pnode tree, int x) { Pnode p; if (tree->data == x) return tree; if (tree == NULL) return NULL; p = search(tree->left, x); if (p == NULL) search(tree->right, x); }
15
Cy nh phn tm kim
Cy nh phn tm kim (Binay Search Tree) l mt cy nh phn m ti mi node:
Phn t node ln hn cc phn t cy con bn tri. Nh hn cc phn t cy con bn phi.
Ci t cy nh phn tm kim: S dng danh sch lin kt. struct node { int data; node *left, *right; }; typedef node * Pnode;
16
17
V d
Tm node c gi tr 32 trong cy hnh bn. So snh 32 vi node gc l 20, do 32>20 tm tip trn cy con bn phi l cy c node gc l 35. So snh 32 vi node gc l 35, do 32<35 tm tip trn cy con bn tri l cy c node gc 32. So snh 32 vi node gc l 32, 32=32 dng, tm c node cha gi tr cn tm.
20
15
35
10
18
32
44
13
27
19
20
21
V d
Thm 1 node c gi tr 33 vo cy. So snh 33 vi node gc l 20, do 33>20 xt tip cy con bn phi l cy c node gc 35. So snh 33 vi node gc l 35, do 33<35 xt tip cy con bn tri l cy c node gc 32. So snh 33 vi node gc l 32, 33>32 xt tip cy con bn phi. V node con bn phi = NULL, thm node mi cha 33 vo bn phi node cha gi tr 32.
20
15
35
10
18
32
44
13
27
22
15
35
15
NULL
23
18
18
32
44
18
44
24
27
Bi tp
1. Vit chng trnh thc hin cc thao tc trn cy nh phn tm kim:
a. b. c. d. e. f. g. h. i. Thm phn t. Tm kim phn t. Hy b phn t. Duyt cy theo NLR, LNR, LRN. m s node l trn cy. Tnh chiu cao ca cy. m s node c: bc 1, bc 2. Tm node con bn tri, bn phi ca 1 node. Tnh tng cc phn t trn cy.
28
Bi tp
2. Hy v cy nh phn tm kim cho cc gi tr sau: paper, hero, talent, green, paint, time, potato, hello, tomato, talkative, empty, storage. Q 3. Hy v cy nh phn tm kim cho dy s: 40, 25, 74, 57, 65, 80, 16, 20, 43, 22, 36, 78. 4. Cho bit th t duyt LNR, NLR, LRN, RNL, NRL, RLN ca cy hnh bn:
A
29
Bi tp
5. Mt sinh vin c cc thng tin: m s, h tn, nm sinh, im trung bnh. Vit chng trnh to cy nh phn tm kim kiu sinh vin, sinh vin nhp u tin lm node gc, da vo m s sinh vin lu vo cy con bn tri hoc cy con bn phi ca cy nh phn tm kim, vit mt s thao tc sau:
a. b. c. d. e. Thm 1 sinh vin. Tm kim sinh vin theo m s. Hy b sinh vin theo m s. Xut danh sch sinh vin. m s sinh vin c im trung bnh >=5.
30