Professional Documents
Culture Documents
Biên
www.hutech.edu.vn
*1.2021.COS120*
- :
tailieuhoctap@hutech.edu.vn
I
.................................................................................................................. I
.............................................................................................. V
....................................................................................................... VIII
BÀI 1: ......................................... 1
1.1 VAI TR C AC D L N TIN H C .......................... 1
................................................ 2
............................................................................... 3
....................................................................................... 3
.............................................................................. 4
PH C T P C A GI I THU T ......................................................................... 6
............................................................ 6
................................................................. 8
.................................................................................................................. 9
.................................................................................................... 10
BÀI 2: DANH SÁCH .................................................................................................... 11
2.1 KH I NI M ....................................................................................................... 11
2.2 C U TR C DANH S CH ..................................................................................... 11
PC T DANH S CH ............................................................... 14
2.4 HI N TH C DANH S CH K .............................................................................. 15
2.4.1 ................................................................ 15
2.4.2 Các t c v ......................................................................... 16
2.5 HI N TH C DANH S CH LIÊN K ........................................................... 21
................................................................... 21
......................................................... 21
2.5.3 ............................................................ 22
2.6 C C LO I DANH S CH LIÊN K T KH C ............................................................. 27
................................................................................ 27
.................................................................................. 28
................................................................................................................ 29
.................................................................................................... 29
BÀI 3: C VÀ QUEUE ........................................................................... 31
STACK ..................................................................................... 31
................................ ....................................................... 31
................................................................................................. 32
................................................................ ...................... 33
STACK ........................................................................................... 33
................................................................. 33
II
................................ .......................... 35
3.3 M T S B I TO N NG D NG STACK .............................................................. 36
................................ ................................... 36
........................................................... 39
3.3.3 Bài to ............................................................... 43
............................................................... 44
..................................................................................... 45
........................................................................................... 48
i ............................................................... 48
..................................................... 49
IC .................................................................................... 49
................................................................................................................ 51
.................................................................................................... 51
- .......................... 52
.............................................................................. 52
................................................................................................. 53
...................................................................................... 55
4.3.1 ............................................................................................... 55
................................................................................................ 55
...................................................................................... 57
........................................................... 59
4.4.1 ....................................................................... 59
4.4.2 ..................................................................................... 59
............................................................ 62
................................................................... 64
................................................................................................................ 68
.................................................................................................... 68
- AVL .................................................... 70
.......................................... 70
............................................................................................ 71
................................................................ ......... 72
...................................................................... 73
.......................................................................... 74
............................................................................................. 77
....................................................................... 77
................................................................................. 77
................................................................................................................ 80
.................................................................................................... 80
........................................................................ 81
6.1 ............................................................................................... 81
................................................................................................ ......... 81
III
............................................................................ 84
................................ ....................................................... 87
................................................................................... 89
........................................................................ 90
.................................................................................................. 90
................................ ............................................................... 92
........................................................................................... 92
.................................................................................................. 92
.......................................................................................... 94
................................................................................. 95
................................ ............................................................... 96
................................................................................................................ 97
.................................................................................................... 97
.............................................................................. 99
7.1 Chu trình Euler ................................................................................................. 99
.................................................................................................. 99
............................................................. 101
7.2 Chu trình Hamilton......................................................................................... 103
................................................................................................ 103
.................................................................. 104
..................................................................................................... 107
.............................................................................................................. 109
.................................................................................................. 109
.............................................................................................. 111
............................................................................... 111
................................................................... 111
...................................................................... 114
..................................................................................................... 115
................................................................................. 115
8.4.2 Bài toán tìm các thành p .......................................................... 118
.............................................................................................................. 121
.................................................................................................. 121
............................................. 124
.................................................................................................. 124
................................................................................................. 124
.............................................................................. 126
............................................................................... 128
.................................................................................. 129
........................................................................................................ 129
......................................................................................... 131
........................................................................................................ 131
IV
.............................................................................................................. 136
.................................................................................................. 136
.............................................................................. 138
............................................................... 138
............................................................................... 138
- FORD ..................................................................... 140
..................................................................................... 142
.............................................................................................................. 145
.................................................................................................. 145
.......................................................................................... 148
V
........................................... 7
.................................................. 14
.......................................................................... 15
Hình 2.3: Thêm n t 18 v o v tr 3 trong danh s ch ............................................ 18
Hình 2.4. X a n t 15 v tr 2 trong danh s ch .................................................. 19
Hình 2.5: Danh s ch liên k ..................................................................... 21
.................................. 23
Hình 2.7:
.................................. 23
............................................................ 24
.................................................... 24
Hình 2.10: Danh s ch liên k t v ng. ................................................................. 27
Hình 2.11: M t n t c a danh s ch liên k t k p. .................................................. 28
Hình 2.12: .................................................................... 28
Hình 3.1: Stack v thao t c push, pop trên n . .................................................. 32
Hình 3.2: Bà ..... 36
................ 37
................. 39
.................................................................................... 45
Hình 3.6: Minh hoa ...................................... 46
Hình 3.7: C t Queue b ng danh s ch liên k t ............................................... 49
Hình 4.1: y. ......................................................... 52
Hình 4.2: .................................................................................. 54
Hình 4.3: ........................................................................... 54
Hình 4.4: ....................................................................... 55
Hình 4.5: .......................................................................... 58
Hình 4.6: ..................................................................... 63
Hình 4.7: ............................................... 64
Hình 4.8: Xóa nút lá trên cây BST. ................................................................... 65
Hình 4.9: Xóa nút ................................................. 66
VI
Hình 4.10: Xóa nút có hai cây con trên cây BST. ................................................ 66
Hình 5.1: nút ........................................ 71
Hình 5.2: ................................................. 72
Hình 5.3: . .............................................. 72
Hình 5.4: . ............................................... 73
Hình 5.5: . ............................................. 74
Hình 5.6: ..................................................... 75
Hình 5.7: . ......................................................................... 76
Hình 5.8: Xoay kép. ....................................................................................... 76
................................................................... 82
................................................................... 82
Hình 6.3: ................................................................... 83
.................................. 84
................................... 84
....................................................................... 85
................ 91
........................................................................................... 92
.......................................... 93
..................................... 93
.......................................... 94
................. 94
................. 95
................................................................................................. 104
......................... 106
........ 106
......................... 107
ình 7.6 ....................................... 108
.......................................... 108
........................ 113
.............. 119
.................................................................................. 124
.................................................................................. 125
........................................................................................................ 126
................................................................. 128
............................................................. 131
........................................................... 135
Hình 10.1: Ví d .................................................... 139
- -
IX
-
-
t
.
X
- 50%. Hình t
- m thi: 5
BÀI 1: 1
BÀI 1:
C u trúc d li u + Gi i thu
Tiêu
:
BÀI 1: 3
1.3 TR NG HOÁ D LI U
1.1
Mô
u v o:
u ra:
u v o:
u ra:
1.4 KI U D LI N
4 BÀI 1:
Ghi chú
char 1 byte -128 1-
unsigned 1 byte -
char
int 2 bytes -32, short int
32,767
unsigned int 2 bytes unsigned short int
int 4 bytes -2 32 31 -1 long int (x64)
long 4 bytes -2 32 31
-1
32
unsigned long 4 bytes -1
float 4 bytes 3.4E-
3.4E38 -
1.5 KI U D LI U CÓ C U TRÚC
BÀI 1: 5
1.2
- -
- -
int Diemthi;
char masv[15];
char tensv[15];
char noisinh[15];
char ngay;
char thang;
char thang;
}Date;
char masv[15];
char tensv[15];
Date ngaysinh;
char noisinh[15];
}SinhVien;
6 BÀI 1:
1.6 C T P C A GI I THU T
1.6.1 Khái ni m v ph c t p c a gi i thu t
g trình:
t
BÀI 1: 7
N0
O(1) h
O(log n)
2
O(n) nh
O(nlog n) nh logarit
2
2 3
O(n ), O(n )
O(n!), O(n n)
Hình 1.1
8 BÀI 1:
1.6.2 ph c t p c a gi i thu t
Quy t c b h ng s : N i gian th c hi n là O(c.f(n)) v i
c là m t h ng s coi O(c.f(n)) = O(f(n)).
n n m:
: T ch c d li u chính là t
ch c bi u di n ng th c t c a bài toán. Vì v y, t ch c d li
quan tr ng trong vi c gi i quy t x lý bài toán, n k t qu c c a
án tin h c. T ch c d li u là công vi c
, phù
,t .
Phân bi c ki u d li n v ki u d li u c c u tr c
ed char, int, unsigned int, long, unsigned long, float, double,
liên C
Kh i ni m v c ch x n
10 BÀI 1:
Câu 1:
a.
b.
c.
Câu 2:
a.
b.
c.
Câu 3:
Câu 4:
Câu 5:
.
BÀI 2: DANH SÁCH 11
- Hi c c u tr c danh s ch.
2.1 KH I NI M
- danh s ch k
- d
2.2 C DANH S CH
- init
o ur n t.
12 BÀI 2: DANH SÁCH
isEmpty:
- isFull:
- ListSize:
ông.
- Retrieve:
pos
0=<pos<=num - 1 (num
- Insert:
pos
pos
0=<pos<=num.
- Remove:
pos
pos út xóa).
0=<pos<=num 1
BÀI 2: DANH SÁCH 13
- Replace:
pos
pos.
0=<pos<=num-1
- ShowList:
- Sort:
- Search:
- Clearlist:
ông.
14 BÀI 2: DANH SÁCH
2.3 PC T DANH S CH
C t theo ki u k ti p:
hau
H ng là
.
Hình 2.1:
info next
pHead
NULL
BÀI 2: DANH SÁCH 15
pHead
N t u N t cu i
Hình 2.2:
So s nh hai ki u c t:
i .
insert,
remove
remove, insert
2.4 HI N TH C DANH S CH K
2.4.1 Khai báo c u trúc c a danh sách k
- num
16 BÀI 2: DANH SÁCH
- T nodes
int num;
DataType nodes[MAXLIST];
}List;
- K
plist.num=0;
- X ch:
return 0;
}
else
if(IsEmpty(plist))
{
return 0;
}
else
return plist.nodes[p os];
}
int i;
else{
if(IsFull(plist)){
return;
else{
plist.nodes[i+1]=plist.nodes[i];
plist.nodes[pos]=x;
plist.num++;
c khi thêm:
30 24 15 28 12 22 17
0 1 2 3 4 5 6 7 8 9
Sau khi thêm n t 18 v o v tr 3:
30 24 15 18 28 12 22 17
0 1 2 3 4 5 6 7 8 9
Hình 2.3: Thêm n t 18 v o v tr 3 trong danh s ch
=>
F
int x = -1;
return x;
else{
if(IsEmpty(plist)) return x;
else{
x=plist.nodes[p os];
for(int i=pos;i<ListSize(plist)-1;i++){
plist.nodes[i]=plist.nodes[i+1];
plist.num--;
}
BÀI 2: DANH SÁCH 19
return x;
c khi x a:
30 24 15 28 12 22 17
0 1 2 3 4 5 6 7 8 9
Sau khi x a n t 15 t i v tr 2:
30 24 28 12 22 17
0 1 2 3 4 5 6 7 8 9
Hình 2.4. X a n t 15 v tr 2 trong danh s ch
-
if(IsEmpty(plist)){
printf("\n Danh sach khong co phan tu");
return;
}else
plist.nodes[pos]=x;
}
if(IsEmpty(plist)){
printf("\n Danh sach khong co phan tu");
return;
}
for(i=0;i<plist.num;i++){
printf("\n%d", plist.nodes[i]);
}
}
20 BÀI 2: DANH SÁCH
int vitri=0;
vitri++;
if(vitri==plist.num)
return -1;
return vitri;
int i,j,vitrimin,min;
for(i=0;i<plist.num-1;i++){
min=plist.nodes[i];
vitrimin=i;
for(j=i+1;j<plist.num;j++){
if(min >plist.nodes[j]){
min=plist.nodes[j];
vitrimin=j;
plist.nodes[vitrimin]=plist.nodes[i];
plist.nodes[i]=min;
}
BÀI 2: DANH SÁCH 21
2.5 HI N TH C DANH S CH LIÊN K
2.5.1 Gi i thi u danh sách liên k
info - next
phead
pHead
next next next next
N t u N t cu i
- phead
phead=NULL
- phead
- info
- next
22 BÀI 2: DANH SÁCH
- nit:
phead = NULL;
- -
t on tc d li u x.
p->info = x;
p->next = NULL;
return p;
NODEPTR p = CreateNode(x);
p->next = phead;
BÀI 2: DANH SÁCH 23
phead = p;
(a) (b)
Hình 2.6:
ch.
-
NODEPTR tam;
if(p!=NULL){
q = createNode(x);
q->next = p->next;
p->next = q;
(a) (b)
Hình 2.7:
else {
24 BÀI 2: DANH SÁCH
p = pHead;
pHead = pHead ->next;
delete p;
}
(a) (b)
Hình 2.8
else {
q = p->next;
p->next = q->next;
delete q;
}
}
(a) (b)
Hình 2.9
- ClearList:
trên danh sách.
NODEPTR p;
BÀI 2: DANH SÁCH 25
while (pHead!=NULL)
{
p = pHead;
pHead = p->next;
delete p;
}
}
- n th thông tin c c n t.
- ng Selection Sort).
min = q->info;
pmin = q;
}
}
pmin->info = p->info;
p->info = min;
}
}
M ts t cv kh c
- x v a ch c a
n t th i.
NODEPTR p=phead;
int vitri=0;
p=p->next;
vitri++;
return p;
- Tác v
- plist
- plist
28 BÀI 2: DANH SÁCH
left
right).
Hình
Hình 2.12:
right t
left right
left
BÀI 2: DANH SÁCH 29
n n m:
C u tr c d li u danh s ch l d y c c ph n t c c ng ki u d li u, v c t nh th
t . M i ph n t tn t
Câu 1:
a.
b.
c.
d. T
e.
f.
g.
h.
i.
Câu 3:
- -
-
30 BÀI 2: DANH SÁCH
a.
phím)
b.
c.
Câu 5: V
Câu 6:
BÀI 3: C VÀ QUEUE
- Hi c c u tr c Stack và Queue.
Stack
Stack. Trên Stack các
Stack ho
v c - LIFO (Last In First Out).
- T push Stack
- T pop Stack.
Stack
- pop(s): hình c.
3.1.2 Mô t Stack
Stack
Stack Stack.
- Init
Stack
Stack Stack.
- IsEmpty
Stack
- Push
Stack.
BÀI 3: 33
- Pop
Stack.
Stack
3.1.3 ng d ng c a Stack
- Stack
- Stack
- Stack
3.2 HI N TH C STACK
3.2.1 Hi n th c Stack b ng danh sách k
Stack:
- Stack.
- Stack.
C ct cv trên Stack
s.top = -1;
return (s.top==-1);
DataType info;
}Node;
STACK s;
C c t c v trên Stack:
s=NULL;
int IsEmpty(STACK s) {
return (s==NULL);
if(p==NULL) return 0;
p->info = x;
p->next = s;
s = p;
return 1;
- Tác
{
if (isEmpty(s)) return 0;
NODEPTR p=s;
x=p->info;
s=s->next;
delete p;
return 1;
}
3.3 B I TO N NG D NG STACK
-
(a) (b)
Hình 3.2:
-
BÀI 3: 37
void DiChuyen(int n , char a, char b, char c )
{
if (n==1)
{
}
DiChuyen (n-1, a, c, b);
Hình 3.3:
struct item_tower
{
int num;
char A, B, C;
void assign(int n, char a, char b, char c)
38 BÀI 3:
{
num = n;
A = a;
B = b;
C = c;
}
};
void DiChuyen_KhuDeQuy(int n, char a, char b, char c)
{
stack s;
item t;
int d = 0;
t.assign(n, a, b, c);
init(s);
push(t, s);
while(isEmpty(s) == false)
{
item temp = top(s);
pop(s);
if (temp.num == 1)
printf("Di chuyen 1 dia tu %c sang %c\n ", temp.A, temp.C);
else
{
t.assign(temp.num-1, temp.B, temp.A, temp.C);
push(t, s);
Hình 3.4:
các
các , (4)
.
, (2)
, (3) Phép toán
.
40 BÀI 3:
, (2)
, (3)
1.
Stack s
2.
3.
4.
5.
6.
toán
BÀI 3: 41
7. -
8.
3.1
stack s = NULL
i exp[i] output s
0 A A NULL
1 * A *
2 ( A (*
3 B AB (*
4 + AB +(*
5 C ABC +(*
6 ) ABC+ *
ABC+*
3.2
stack s = NULL
i exp[i] output s
0 A A NULL
1 * A *
2 B AB *
3 ^ AB ^*
4 C ABC ^*
5 + ABC^* +
6 D ABC^*D +
ABC^*D+
42 BÀI 3:
1.
2. Tha
3.
- Stack s
toán
ào stack s.
4.
5.
3.3
BÀI 3: 43
i exp[i] output S
0 ( [] (
1 C C (
2 + C +(
3 B CB +(
4 ) CB+
5 * CB+ *
6 A CB+A *
*A+BC
3.4
ev = D/C+B*A
i exp[i] output S
0 D D NULL
1 / D /
2 C DC /
3 + DC/ +
4 B DC/B +
5 * DC/B *+
6 A DC/BA *+
= +*AB/CD
1.
2.
44 BÀI 3:
3.
4. b) ra
5.
6. c sau
3.5 -
i exp[i] a b S
0 2 - - - 2
1 5 - - - 5 2
2 7 - - - 7 5 2
3 8 - - - 8 7 5 2
4 * 8 7 7 * 8 = 56 56 5 2
5 + 56 5 5 + 56 = 61 61 2
6 * 61 2 2 * 61 = 122 122
7 9 - - - 9 122
8 - 9 122 122 9 113
- là 113.
1.
2.
3.
4.
vào stack s.
BÀI 3: 45
5.
6.
3.6 -*2+5*789
i exp[i] a b S
a và b
8 9 - - - 9
7 8 - - - 8 9
6 7 - - - 7 8 9
5 * 7 8 7 * 8 = 56 56 9
4 5 - - - 5 56 9
3 + 5 56 5 + 56 = 61 61 9
2 2 - - - 2 61 9
1 * 2 61 2 * 61 122 9
0 - 122 9 122 9 = 113 113
-*2+5*789 là 113.
Hình 3.5:
46 BÀI 3:
Kh i ni m v Queue
- insert
- remove
Hìn
(hình a)
insert (q, A)
insert (q, B)
remove(q) (hình c)
remove(q) (hình e)
Hình 3.6:
BÀI 3: 47
:
- Init
- IsEmpty
- Tá Insert
- Remove
thông tin n .
48 BÀI 3:
3.5 HI N TH C QUEUE
3.5.1 Dùng m ng vòng hi n th i
-1].
front rear
3.6 IC N
50 BÀI 3:
Có
-
BÀI 3: 51
c n n m:
sau). IFO.
t h
server, c
.
Câu 2: Stack.
Câu 3:
Câu 4:
Câu 5:
Câu 6:
52 BÀI 4: - CÂY N
BÀI 4: -
PHÂN
- Hi u c c u tr c
Hình 4.1:
BÀI 4: - 53
là nút không có nút cha,
Nút lá (leaf)
gree of node)
- 1.
cây + 1
- Hai
54 BÀI 4: -
Hình 4.2:
M t
t 2n - 1 nút.
Hình 4.3:
-
BÀI 4: - 55
Hình 4.4:
4.3.2 Mô t tác v
- Init
- IsEmpty
56 BÀI 4: - CÂY NH
- CreateNode
- InsertLeft
- InsertRight
- DeleteLeft
- DeleteR ight
BÀI 4: - 57
- PreOrder
: không.
: Không.
- InOrder
: Không.
- PostOder
: Không.
: Không.
- Search
- ClearTree
: Không.
ó ba cách :
Hình 4.5:
N .
N trên .
BÀI 4: - 59
4.4 HI N TH C CÂY NH PHÂN T NG QUÁT
4.4.1 Khai báo c u trúc c a m t nút
DataType info;
}Node ;
info
- CreateNode: .
NODEPTR CreateNode(DataType x){
NODEPTR p=new Node;
p->info=x;
p->left=NULL;
p->right=NULL;
return p;
}
- PreOrder
void PreOder(NODEPTR proot){
if(proot !=NULL){
printf("%4d",proot->info);
PreOder (proot->left)
PreOder (proot->right);
}
}
60 BÀI 4: -
- InOder
- PostOder
- Search
- ClearTree
if(proot!=NULL){
ClearTree(proot->left) ;
ClearTree(proot->right);
delete proot;
}
BÀI 4: - 61
- InsertLeft
void InsertLeft (NODEPTR p, DataType x){
if(p==NULL)
printf("\n Nut khong ton tai");
else
if(p->left !=NULL)
printf("\n Nut p da co con ben trai");
else
p->left= CreateNode(x);
}
- InsertRight
void InsertRight(NODEPTR p , DataType x){
if(p==NULL)
printf("\n Nut khong ton tai");
else
if(p->right!=NULL)
printf("\n Nut da co con ben phai");
else
p->right=CreateNode(x);
}
- DeleteLeft
int DeleteLeft(NODEPTR p){
NODEPTR q;
int x;
if(p==NULL){
printf("\n Nut khong ton tai");
}
else{
q=p->left;
x=q->info;
if(q==NULL)
printf("\n Nut khong co con ben trai");
else{
if(q->left!=NULL ||q->right !=NULL)
printf("\n Nut khong phai la la");
else{
p->left=NULL;
delete q;
}
}
}
return x;
}
62 BÀI 4: -
- DeleteRight
int DeleteRight(NODEPTR p){
NODEPTR q;
int x;
if(p==NULL){
printf("\n Nut khong ton tai");
}
else{
q=p->right;
x=q->info;
if(q==NULL)
printf("\n Nut khong co con ben phai");
else{
if(q->left!=NULL ||q->right !=NULL)
printf("\n Nut khong phai la la");
else{
p->right=NULL;
delete q;
}
}
}
return x;
}
-
c.
- C
BÀI 4: - 63
Hình 4.6:
Trong
- :
- :
-
64 BÀI 4: -
NODEPTR p;
p=proot;
if(p!=NULL)
else
return p;
Hình 4.7:
BÀI 4: - 65
void Insert(NODEPTR &proot, DataType x) {
if (isEmpty(proot)
proot = CreateNode(x);
else
if (x==proot->info)
return;
if (x<proot->info)
Insert(proot->left, x);
else
Insert(proot->right, x);
ó chúng ta
i.
66 BÀI 4: -
Hình 4.9:
Hình 4.10: Xóa nút có hai cây con trên cây BST.
if ( proot == NULL)
return FALSE;
if (proot->info <x)
->info==x)
Node* p, f, rp;
BÀI 4: - 67
p = proot;
proot = proot->right;
else {
f = p;
rp = p->right; ->right
f = rp;
p->info = rp->info;
if ( f == p)
f->right = rp->right;
else //f != p
f->left = rp->right;
p = rp;
return TRUE;
68 BÀI 4: -
n n m:
Cây n
con trái , và g
.
Câu 1:
a.
b.
c.
d.
e.
f.
g.
BÀI 4: - 69
h.
i. không?
j.
k.
l.
Câu 2:
a.
5, 2, 20, 11, 30, 9, 18, 4.
b.
Câu 3:
a.
b.
c.
d.
e.
f.
g.
h.
i.
j. .
70 BÀI 5: - AVL
BÀI 5:
- AVL
Sau khi h
- Hi u c c u tr g.
là Adelson Velski và L
-
BÀI 5: - AVL 71
-
- lh(p)=rh(p)
- bf(p)=0: lh(p)=rh(p)
- bf(p)=1: lh(p)=rh(p) + 1
- bf(p)=-1: lh(p)=rh(p) 1
Hình 5.1:
Hình 5.2:
Hình 5.3: .
BÀI 5: - AVL 73
NODEPTR RotateLeft(NODEPTR proot){
NODEPTR p;
p=proot;
if(proot==NULL){
}else{
if(proot->right==NULL)
printf("\n Khong the xoay trai vi khong co node con ben phai");
else{
p=proot->right;
proot ->right=p->left;
p->left=proot;
return p;
Hình 5.4: .
74 BÀI 5: - AVL
Hình 5.5: .
-
BÀI 5: - AVL 75
-
bf(ya)=1, nút lá thêm vào cây là nút sau bên trái ya.
bf(ya)=-
Hình 5.6:
76 BÀI 5: - AVL
Hình 5.7: .
struct nodetype{
DataType info;
};
ya=q;
}
fp=p;
p=q;
}
q=makenode(x);
//them vao mot node la con cua fp
if(x<fp->info) fp->left=q;
else fp->right=q;
//hieu chinh lai chi so can bang cua tat ca cac node giua ya va q
if(x<ya->info) p=ya->left;
else p=ya->right;
s=p;
while(p!=q){
if(x<p->info){
p->bf=1;
p=p->left;
}else{
p->bf=-1;
p=p->right;
}
}
if(ya ->bf==0){
ya->bf=imbal;
return;
}
if(ya ->bf !=imbal){
ya->bf=0;
return;
}
if(s->bf==imbal){
if(imbal==1){
p=RotateRight(ya);
}else{
p=RotateLeft(ya);
}
BÀI 5: - AVL 79
ya->bf=0;
s->bf=0;
}else{
if(imbal==1){
ya->left=RotateLeft(s);
p=RotateRight(ya);
}else{
ya->right=RotateRight(s);
p=RotateLeft(ya);
}
if(p->bf==0){
ya->bf=0;
s->bf=0;
}else
if(p->bf==imbal){
ya->bf=-imbal;
s->bf=0;
}else{
ya->bf=0;
s->bf=imbal;
}
p->bf=0;
}
if(fya==NULL) *pavltree=p;
else
if(ya==fya->right) fya->right=p;
else fya->left=p;
}
80 BÀI 5: - AVL
Câu 1: AVL.
a.
5, 2, 20, 11, 30, 9, 18, 4.
b.
Câu 2:
a. e
b.
BÀI 6: 81
BÀI 6:
V2
(u, v
tr nh (u, v)
Hình 6.1:
Hình 6.2:
Khuyên
BÀI 6: 83
A, E)
là
E), (A, E) và (D, E), (B, E) và (C, E), (B, E) và (D, E), (C, E) và (D, E).
D.
Hình 6.3:
84 BÀI 6:
6.1.2 M t s d th c bi t
Hình
6.5.
(a) (b)
Hình 6.4:
(a) (b)
Hình 6.5:
BÀI 6: 85
Hình 6.6:
(a)
(b)
Hình 6.7:
Harary
86 BÀI 6:
A = (V A, EA G, EG
VA G và các cung trong E A là các /cung
A.
1 = (V G, E1 G, EG
E1 G.
G G = {(A, B), (A, C), (A, E), (B, D), (B, E), (C,
1 G1 p
G1 = {(A, B), (A, C), (B, D), (C, D)}. Do V G1 VG
G2 G2
= {(A, B), (A, C), (B, D), (B, E), (C, D)}. Do V G = V G2 và E G2 EG
Hình 6.8:
BÀI 6: 87
(A, B) 1
(A, D) 7
(A, E) 5
(B, C) 12
(B, D) 3
(C, D) 9
(D, E) 1
Hình 6.9:
6.1.3 B c c th
o.
-
88 BÀI 6:
+
:
-
(v) + d+(v).
A B C D E F
0 2 1 2 0 1
2 1 2 1 0 0
2 3 3 3 0 1
Hình 6.10:
1.
2.
3.
4.
1.
5.
BÀI 6: 89
6.
6.1.4
: dãy v0 , v1 n (vi 0
vn i và vi+1 i, v i+1) 0
0, v1 n.
: là
Chu trình
Hình 6.11:
90 BÀI 6:
, C, A}.
Hình 6.12:
1.
2.
n thông.
BÀI 6: 91
(a) (b)
(c) (d)
Hình 6.13:
92 BÀI 6:
Hình 6.14:
1.
2.
3.
4.
5. -1)(n-
6.3 BI U DI TH
6.3.1 Ma tr n k
th ng G = (V, E) v i t nh V = {v 1, v2 n} và t p c nh E =
{e 1, e2 m}. Ma tr n k c th G là ma tr n vuông A c p v i các ph n t
BÀI 6: 93
ij
i và vj.
1. Ma tr
2.
3.
6.1
Hình 6.15:
6.2
Hình 6.16:
94 BÀI 6:
6.3
Hình 6.17:
6.3.2 Ma tr n tr ng s
1, v2 n
1, e2 m i, vj ij nk ,
ma tr n tr ng s c th G là ma tr n vuông c p v i các ph n t c xác
nh b ng tr ng s c a m i c
6.4
Hình 6.18:
BÀI 6: 95
6.5
Hình 6.19:
i.
1 1
1 2
1 4
2 3
4 2
4 3
96 BÀI 6:
6.7
1 2 5
1 4 7
2 3 3
4 2 9
4 3 12
V: (u, v) E).
6.8
L(1) = {2, 4}
L(2) = {1, 3, 4}
L(3) = {2, 4}
L(4) = {1, 2, 3}
6.9
L(1) = {1, 2, 4}
L(2) = {3}
L(3) =
L(4) = {2, 3}
BÀI 6: 97
n n m:
Câu 1:
98 BÀI 6:
Câu 2:
Câu 3:
Câu 4:
Câu 5:
và câu 4.
Câu 6:
Câu 7:
Câu 8:
BÀI 7: 99
BÀI 7:
1, v2 n }, E = {e1 , e2 m}
- ng
ler A, D, E, C, D, F, A,
Hình 7.1
(
2.
BÀI 7: 101
Fleury sau:
1.
2.
3.
a.
b.
chu trình/ .
Function Euler_Path
{
Thêm u vào S
102 BÀI 7:
) do
{
Thêm w vào S
else
{
Thêm v vào CE
}
}
}
7.1
Hình 7.2:
1.
2.
BÀI 7: RÌNH 103
3.
Euler
4.
5.
6.
7.
hu trình Hamilton.
104 BÀI 7:
Hình 7.3
0, v1,
n
BÀI 7: 105
1. 0 0
2. Thêm 1
tìm: H = {v0 0
Function Hamilton(k)
{
-1] do
{
if (k = n + 1 and u = v0) then write(
else
{
if (visited[u] == false) then
{
H[k] = u
visited[u] = true
Hamilton(k + 1)
visited[u] = false
}
}
}
}
// main program
Function main
{
for v V do visited[v] = false
H[1] = v0
visited[v0] = true
Hamilton(2)
106 BÀI 7:
7.2
Hình 7.4:
Hình 7.5: C
BÀI 7: 107
7.3 NG D NG
: t
Hình 7.6:
108 BÀI 7:
Hình 7.7:
Hình 7.8:
BÀI 7: 109
Câu 1:
a. b.
c. d.
Câu 2:
110 BÀI 7:
Câu 3:
Câu 4:
Câu 5:
Câu 6:
BÀI 8: 111
BÀI 8:
- Hi u
Search).
{v 0}.
Function BFS(v)
{
phát v
for u V do
visited[u] = false
visited[v] = true
)
{
visited[z] = true
}
}
}
}
Function main
{
for v V do visited[v] = false
for v V do
if (visited[v] == false) then BFS(v)
}
BÀI 8: 113
8.1
Hình 8.1:
= true, 0 = false).
Function DFS(v)
{
visited[v] = true
for u V do
visited[u] = false
)
{
visited[z] = true
}
}
}
}
theo cách sau:
Function main()
{
for v V do visited[v] = false
for v V do
if (visited[v] == false) then DFS(v)
}
BÀI 8: 115
8.2
= true, 0 = false).
, 9, 6, 8, 3, 4.
8.4 NG D NG
8.4.1
Function BFS(s, g)
{
for u V do
{
116 BÀI 8:
visited[u] = false
parent[u] = -1
}
visited[s] = true
)
{
if (u == g) then
visited[z] = true
parent[z] = u
}
}
}
if L =
}
Function DFS(s, g)
{
for u V do
{
visited[u] = false
parent[u] = -1
}
visited[s] = true
)
{
if (u == g) then
for
{
BÀI 8: 117
visited[z] = true
parent[z] = u
}
}
}
}
v1 = parent[g] v2 =
parent[v1] v3 = parent[v2]
8.3
hình 8.1.
Danh sách
sau: 1, 2, 7.
118 BÀI 8:
8.4
hình 8.1.
Danh sách
sau: 1, 2, 7.
visited[v] = inconnect
v
)
{
{
if (visited[z] == 0)
{
BÀI 8: 119
visited[z] = inconnect
//parent[z] = u
}
}
}
}
Function Find_connected
{
for v V do visited[v] = 0
count = 0
for v V do
{
if (visited[v] == 0) then
{
count = count + 1
BFS(v, count)
}
}
}
8.5
Hình 8.2:
1. Xét v = 1
visited[1] = 1.
120 BÀI 8:
Danh sách
2. Xét v = 2
visited[2] = 2.
Danh sách
3. Xét v = 9
visited[9] = 3.
Danh sách
9 {1, 2, 1, 1, 1, 1, 2, 2, 3}
{9}.
BÀI 8: 121
n n m:
Câu 1:
b.
a.
c. d.
122 BÀI 8:
e.
Câu 2:
Câu 3:
a.
b.
BÀI 8: 123
Câu 4:
Câu 5:
Câu 6:
Câu 7:
Câu 8:
124 BÀI 9:
- Hi u
9.1
9.1.1 Cây và b i
T, ET T T
Hình 9.1:
BÀI 9: 125
G, EG VG
1.
2.
3.
Hình 9.2:
1. T là cây.
4.
liên thông.
5.
6.
126 BÀI 9:
(a) (b)
(c) (d)
Hình 9.3:
1.
n-2
2. .
3.
4.
5. -
BÀI 9: 127
Function SpanningTree_DFS(r):
{
visited[r] = true
{
If (visited[u] == false) then
{
T = T (r, u)
SpanningTree_DFS(u)
}
}
}
Function SpanningTree_BFS(r):
{
visited[r] = true
do
{
{
if (visited[v] == false)
{
visited[v] = false
T = T (u, v)
}
}
}
}
128 BÀI 9:
G, EG G = {1, 2,
G nh.
Hình 9.4
(a) (b)
(c) (d)
Hình 9.4
BÀI 9: 129
Tuy
n-2
1.
2.
3. .
4.
5. -
G, EG G
Function Kruskal
{
ET =
while (|E T | < n-1) and (EG ) do
{
G.
if (ET T = ET {e}
130 BÀI 9:
G.
}
if (|ET | < n-
}
9.1 G, EG ) trong hình
T =
1. G: e = (1, 3)
2. G: e = (4, 6)
3. G: e = (2, 5)
4. G: e = (3, 6)
Do (ET e) khôn T = {(1, 3), (4, 6), (2, 5), (3, 6)}
5. G: e = (2, 3)
Do (ET T = {(1, 3), (4, 6), (2, 5), (3, 6), (2, 3)}
6.
3. ET = {(1, 3), (4, 6), 4. ET = {(1, 3), (4, 6), 5. ET = {(1, 3), (4, 6),
(2, 5)} (2, 5), (3, 6)} (2, 5), (3, 6), (2, 3)}
Hình 9.5:
G, EG G
G
132 BÀI 9:
Function Prim
{
.
T T = {s}
T T =
=0
for u VG \ VH do
{
D[u] = c(s, u)
near[u] = s
}
flag = false
while (flag == false) do
{
VG \ VH
V T = VT {u}
E T = ET {(u, near[u])}
if (|V T| == n) then
{
Thông báo T = (V T, ET
flag = true
}
else
{
for v V G \ V T do
{
if (D[v] > c[u, v]) then
{
D[v] = c[u, v]
near[v] = u
}
}
}
}
}
BÀI 9: 133
9.2 T = (VT, E T G, EG )
near D
VG VT VT
2 1 6
3 1 1
4 1 5
5 1
6 1
T.
T.
near D
VG VT VT
2 3 5
4 1 5
5 3 6
6 3 4
T.
T.
near D
VG VT VT
2 3 5
4 6 2
5 3 6
T.
T.
134 BÀI 9:
4. V T = {1, 3, 6, 4}, VG V T = {2, 5}, E T = {(1, 3), (3, 6), (6, 4)}
near D
VG VT VT
2 3 5
5 3 6
VT.
T.
5. V T = {1, 3, 6, 4, 2}, VG V T = {5}, ET = {(1, 3), (3, 6), (6, 4), (3, 2)}
near D
VG VT VT
5 2 3
T.
T.
6. V T = {1, 3, 6, 4, 2, 5}, V G VT = , ET = {(1, 3), (3, 6), (6, 4), (3, 2), (2, 5)}
T = {(1, 3), (3, 6), (6, 4), (3, 2), (2, 5)}.
Hình 9.6:
136 BÀI 9:
viên c n n m:
Câu 1:
a.
b.
BÀI 9: 137
c.
Câu 2:
Câu 3:
Câu 4:
138 BÀI 10:
BÀI 10:
-
-
10.1 N NH T
1.
2.
V, và D[s] = 0.
BÀI 10: 139
3.
a.
c.
10.1
Hình 10.1:
1. S =
2. S = {0}, D =
3.
4.
5.
6. S = {0, 1, 7, 6, 5}, D =
n
140 BÀI 10:
Hình 10.2:
1. các
V, và D[s] = 0.
2.
10.2 -
(2, 5), (4, 2), (2, 4), (1, 2), (1, 3), (4, 3), (2, 3), (5, 4).
1.
- D = {0, -
- 3) D = {0, -
- D = {0, -
- D = {0, -
- D = {0, -
2.
- D = {0, -
- D = {0, -
- D = {0, -1, 2, 1, 1}
- D = {0, -1, 2, 1, 1}
- D = {0, -1, 2, 1, 1}
- D = {0, -1, 2, 1, 1}
- D = {0, -1, 2, 1, 1}
3.
142 BÀI 10:
Hình 10.4:
1.
2.
3.
10.3
BÀI 10: 143
Hình 10.5:
1.
0 8 1
0 1
D=
4 0
2 9 0
2.
0 8 1
0 1
D=
4 12 0 5
2 9 0
3.
0 8 9 1
0 1
D=
4 12 0 5
2 3 0
144 BÀI 10:
4.
0 8 9 1
5 0 1 6
D=
4 12 0 5
7 2 3 0
5.
0 3 4 1
5 0 1 6
D=
4 7 0 5
7 2 3 0
Th
BÀI 10: 145
n n m:
Câu 1:
a.
146 BÀI 10:
b.
c.
d.
BÀI 10: 147
e.
Câu 2: -
ng bài 1.
Câu 3:
Câu 4:
-Floyd.
Câu 5:
148
1.
2.
4.
TP.HCM.
8.
9.
10.