1
T
T
ớ
ớ
nh lieõn thoõng cu
nh lieõn thoõng cu
ỷ
ỷ
a
a
ủ
ủ
o
o
thũ
thũ
D
D
ử
ử
ụng Anh
ụng Anh
ẹửự
ẹửự
c
c
Nha
Nha
ọ
ọ
p moõn Ca
p moõn Ca
ỏ
ỏ
u tru
u tru
ự
ự
c D
c D
ử
ử
ừ lie
ừ lie
ọ
ọ
u va
u va
ứ
ứ
Gia
Gia
ỷ
ỷ
i thua
i thua
ọ
ọ
t
t
2
2
T
T
ớ
ớ
nh lieõn thoõng cu
nh lieõn thoõng cu
ỷ
ỷ
a
a
ủ
ủ
o
o
thũ
thũ
T
T
ớ
ớ
nh lieõn thoõng cu
nh lieõn thoõng cu
ỷ
ỷ
a
a
ủ
ủ
o
o
thũ
thũ
.
.
T
T
ớ
ớ
nh
nh
song
song
lieõn thoõng
lieõn thoõng
.
.
ẹổ
ẹổ
nh khụ
nh khụ
ự
ự
p
p
Ca
Ca
u
u
2
Nha
Nha
ộ
ộ
c la
c la
ù
ù
i mo
i mo
ọ
ọ
t so
t so
ỏ
ỏ
kha
kha
ự
ự
i nie
i nie
ọ
ọ
m
m
D
D
ử
ử
ụng Anh
ụng Anh
ẹửự
ẹửự
c
c
Nha
Nha
ọ
ọ
p moõn Ca
p moõn Ca
ỏ
ỏ
u tru
u tru
ự
ự
c D
c D
ử
ử
ừ lie
ừ lie
ọ
ọ
u va
u va
ứ
ứ
Gia
Gia
ỷ
ỷ
i thua
i thua
ọ
ọ
t
t
4
4
T
T
ớ
ớ
nh lieõn thoõng
nh lieõn thoõng
ẹ
ẹ
o
o
thũ lieõn thoõng
thũ lieõn thoõng
:
:
mo
mo
ọ
ọ
t ca
t ca
ở
ở
p
p
ủổ
ủổ
nh ba
nh ba
ỏ
ỏ
t ky
t ky
ứ
ứ
ủử
ủử
ụ
ụ
ù
ù
c no
c no
ỏ
ỏ
i
i
vụ
vụ
ự
ự
i nhau ba
i nhau ba
ố
ố
ng
ng
ớ
ớ
t nha
t nha
ỏ
ỏ
t mo
t mo
ọ
ọ
t
t
ủử
ủử
ụ
ụ
ứ
ứ
ng
ng
ủ
ủ
i
i
.
.
ẹo thũ lieõn thoõng ẹo thũ khoõng lieõn thoõng
3
D
D
ử
ử
ụng Anh
ụng Anh
ẹửự
ẹửự
c
c
Nha
Nha
ọ
ọ
p moõn Ca
p moõn Ca
ỏ
ỏ
u tru
u tru
ự
ự
c D
c D
ử
ử
ừ lie
ừ lie
ọ
ọ
u va
u va
ứ
ứ
Gia
Gia
ỷ
ỷ
i thua
i thua
ọ
ọ
t
t
5
5
T
T
ớ
ớ
nh lieõn thoõng
nh lieõn thoõng
Tha
Tha
ứ
ứ
nh pha
nh pha
n lieõn thoõng
n lieõn thoõng
:
:
ủ
ủ
o
o
thũ
thũ
con
con
lieõn thoõng to
lieõn thoõng to
ỏ
ỏ
i
i
ủ
ủ
a
a
ù
ù
i cu
i cu
ỷ
ỷ
a
a
G.
G.
D
D
ử
ử
ụng Anh
ụng Anh
ẹửự
ẹửự
c
c
Nha
Nha
ọ
ọ
p moõn Ca
p moõn Ca
ỏ
ỏ
u tru
u tru
ự
ự
c D
c D
ử
ử
ừ lie
ừ lie
ọ
ọ
u va
u va
ứ
ứ
Gia
Gia
ỷ
ỷ
i thua
i thua
ọ
ọ
t
t
6
6
Quan he
Quan he
ọ
ọ
t
t
ử
ử
ụng
ụng
ủử
ủử
ụng
ụng
Mo
Mo
ọ
ọ
t
t
quan he
quan he
ọ
ọ
treõn ta
treõn ta
ọ
ọ
p hụ
p hụ
ù
ù
p
p
S
S
la
la
ứ
ứ
ta
ta
ọ
ọ
p
p
R
R
ca
ca
ự
ự
c ca
c ca
ở
ở
p co
p co
ự
ự
th
th
ửự
ửự
t
t
ửù
ửù
ca
ca
ự
ự
c pha
c pha
n t
n t
ửỷ
ửỷ
cu
cu
ỷ
ỷ
a
a
S
S
ủ
ủ
ũnh ngh
ũnh ngh
ú
ú
a bụ
a bụ
ỷ
ỷ
i mo
i mo
ọ
ọ
t
t
thuo
thuo
ọ
ọ
c t
c t
ớ
ớ
nh na
nh na
ứ
ứ
o
o
ủ
ủ
o
o
ự
ự
V
V
ớ
ớ
du
du
ù
ù
:
:
S
S
=
=
{ 1, 2, 3, 4 }
{ 1, 2, 3, 4 }
R
R
=
=
{ (i,j)
{ (i,j)
S
S
S
S
sao cho
sao cho
i < j }
i < j }
=
=
{(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)}
{(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)}
4
D
D
ử
ử
ụng Anh
ụng Anh
ẹửự
ẹửự
c
c
Nha
Nha
ọ
ọ
p moõn Ca
p moõn Ca
ỏ
ỏ
u tru
u tru
ự
ự
c D
c D
ử
ử
ừ lie
ừ lie
ọ
ọ
u va
u va
ứ
ứ
Gia
Gia
ỷ
ỷ
i thua
i thua
ọ
ọ
t
t
7
7
Quan he
Quan he
ọ
ọ
t
t
ử
ử
ụng
ụng
ủử
ủử
ụng
ụng
Mo
Mo
ọ
ọ
t
t
quan he
quan he
ọ
ọ
t
t
ử
ử
ụng
ụng
ủử
ủử
ụng
ụng
la
la
ứ
ứ
quan he
quan he
ọ
ọ
vụ
vụ
ự
ự
i ca
i ca
ự
ự
c
c
thuo
thuo
ọ
ọ
c t
c t
ớ
ớ
nh sau
nh sau
:
:
T
T
ớ
ớ
nh pha
nh pha
ỷ
ỷ
n xa
n xa
ù
ù
: (x,x)
: (x,x)
R
R
,
,
x
x
S
S
(reflexiv
(reflexiv
e)
e)
T
T
ớ
ớ
nh
nh
ủ
ủ
o
o
ỏ
ỏ
i x
i x
ửự
ửự
ng
ng
:(x,y)
:(x,y)
R
R
(y,x)
(y,x)
R
R
(symmetri
(symmetri
c)
c)
T
T
ớ
ớ
nh ba
nh ba
ộ
ộ
c ca
c ca
u
u
:(x,y), (y,z)
:(x,y), (y,z)
R
R
(x,z)
(x,z)
R
R
(transitiv
(transitiv
e)
e)
D
D
ử
ử
ụng Anh
ụng Anh
ẹửự
ẹửự
c
c
Nha
Nha
ọ
ọ
p moõn Ca
p moõn Ca
ỏ
ỏ
u tru
u tru
ự
ự
c D
c D
ử
ử
ừ lie
ừ lie
ọ
ọ
u va
u va
ứ
ứ
Gia
Gia
ỷ
ỷ
i thua
i thua
ọ
ọ
t
t
8
8
Quan he
Quan he
ọ
ọ
t
t
ử
ử
ụng
ụng
ủử
ủử
ụng
ụng
Quan he
Quan he
ọ
ọ
C
C
treõn ta
treõn ta
ọ
ọ
p ca
p ca
ự
ự
c
c
ủổ
ủổ
nh cu
nh cu
ỷ
ỷ
a
a
ủ
ủ
o
o
thũ
thũ
:
:
(u,v)
(u,v)
ẻ
ẻ
C
C
u
u
va
va
ứ
ứ
v
v
thuo
thuo
ọ
ọ
c cu
c cu
ứ
ứ
ng mo
ng mo
ọ
ọ
t tha
t tha
ứ
ứ
nh pha
nh pha
n
n
lieõn thoõng
lieõn thoõng
la
la
ứ
ứ
quan he
quan he
ọ
ọ
t
t
ử
ử
ụng
ụng
ủử
ủử
ụng
ụng
.
.
5
DFS
DFS
treõn
treõn
ủ
ủ
o
o
thũ
thũ
khoõng lieõn thoõng
khoõng lieõn thoõng
D
D
ử
ử
ụng Anh
ụng Anh
ẹửự
ẹửự
c
c
Nha
Nha
ọ
ọ
p moõn Ca
p moõn Ca
ỏ
ỏ
u tru
u tru
ự
ự
c D
c D
ử
ử
ừ lie
ừ lie
ọ
ọ
u va
u va
ứ
ứ
Gia
Gia
ỷ
ỷ
i thua
i thua
ọ
ọ
t
t
10
10
DFS
DFS
treõn
treõn
ủ
ủ
o
o
thũ khoõng lieõn thoõng
thũ khoõng lieõn thoõng
6
D
D
ư
ư
ơng Anh
ơng Anh
Đứ
Đứ
c
c
–
–
Nha
Nha
ä
ä
p môn Ca
p môn Ca
á
á
u tru
u tru
ù
ù
c D
c D
ư
ư
õ lie
õ lie
ä
ä
u va
u va
ø
ø
Gia
Gia
û
û
i thua
i thua
ä
ä
t
t
11
11
DFS
DFS
trên
trên
đ
đ
o
o
à
à
thò không liên thông
thò không liên thông
Sau khi thực hiện DFS(1):
k 1 2 3 4 5 6 7
val[k] 1 4 0 2 0 0 3
D
D
ư
ư
ơng Anh
ơng Anh
Đứ
Đứ
c
c
–
–
Nha
Nha
ä
ä
p môn Ca
p môn Ca
á
á
u tru
u tru
ù
ù
c D
c D
ư
ư
õ lie
õ lie
ä
ä
u va
u va
ø
ø
Gia
Gia
û
û
i thua
i thua
ä
ä
t
t
12
12
DFS
DFS
trên
trên
đ
đ
o
o
à
à
thò không liên thông
thò không liên thông
Ha
Ha
ø
ø
m
m
đ
đ
e
e
ä
ä
qui
qui
DFS
DFS
thăm ta
thăm ta
á
á
t ca
t ca
û
û
ca
ca
ù
ù
c
c
đỉ
đỉ
nh thuo
nh thuo
ä
ä
c
c
tha
tha
ø
ø
nh pha
nh pha
à
à
n liên thông
n liên thông
.
.
Ca
Ca
à
à
n thêm va
n thêm va
ø
ø
o mo
o mo
ä
ä
t vo
t vo
ø
ø
ng la
ng la
ë
ë
p
p
for
for
đ
đ
e
e
å
å
thăm ta
thăm ta
á
á
t ca
t ca
û
û
ca
ca
ù
ù
c
c
đỉ
đỉ
nh cu
nh cu
û
û
a
a
đ
đ
o
o
à
à
thò
thò
:
:
for
for
k = 1 to N
k = 1 to N
do
do
if
if
(
(
val
val
[k] = 0)
[k] = 0)
then
then
dfs
dfs
(k)
(k)
7
D
D
ử
ử
ụng Anh
ụng Anh
ẹửự
ẹửự
c
c
Nha
Nha
ọ
ọ
p moõn Ca
p moõn Ca
ỏ
ỏ
u tru
u tru
ự
ự
c D
c D
ử
ử
ừ lie
ừ lie
ọ
ọ
u va
u va
ứ
ứ
Gia
Gia
ỷ
ỷ
i thua
i thua
ọ
ọ
t
t
13
13
DFS
DFS
treõn
treõn
ủ
ủ
o
o
thũ khoõng lieõn thoõng
thũ khoõng lieõn thoõng
Ca
Ca
ự
ự
ch bie
ch bie
ồ
ồ
u dieón ca
u dieón ca
ự
ự
c tha
c tha
ứ
ứ
nh pha
nh pha
n lieõn thoõng
n lieõn thoõng
:
:
Du
Du
ứ
ứ
ng ma
ng ma
ỷ
ỷ
ng
ng
Comp[1..N]
Comp[1..N]
ủ
ủ
e
e
ồ
ồ
bie
bie
ồ
ồ
u die
u die
ồ
ồ
n
n
:
:
Comp[k] = i
Comp[k] = i
ne
ne
ỏ
ỏ
u
u
ủổ
ủổ
nh
nh
k
k
tha
tha
ứ
ứ
nh pha
nh pha
n lieõn
n lieõn
thoõng
thoõng
i
i
D
D
ử
ử
ụng Anh
ụng Anh
ẹửự
ẹửự
c
c
Nha
Nha
ọ
ọ
p moõn Ca
p moõn Ca
ỏ
ỏ
u tru
u tru
ự
ự
c D
c D
ử
ử
ừ lie
ừ lie
ọ
ọ
u va
u va
ứ
ứ
Gia
Gia
ỷ
ỷ
i thua
i thua
ọ
ọ
t
t
14
14
DFS
DFS
treõn
treõn
ủ
ủ
o
o
thũ khoõng lieõn thoõng
thũ khoõng lieõn thoõng
Sau khi th
Sau khi th
ửù
ửù
c hie
c hie
ọ
ọ
n
n
DFS(1)
DFS(1)
:
:
k 1 2 3 4 5 6 7 8
k 1 2 3 4 5 6 7 8
val
val
[k]
[k]
1 1
1 1
2
2
3
3
2
2
3
3
2
2
1
1
8
D
D
ư
ư
ơng Anh
ơng Anh
Đứ
Đứ
c
c
–
–
Nha
Nha
ä
ä
p môn Ca
p môn Ca
á
á
u tru
u tru
ù
ù
c D
c D
ư
ư
õ lie
õ lie
ä
ä
u va
u va
ø
ø
Gia
Gia
û
û
i thua
i thua
ä
ä
t
t
15
15
Thua
Thua
ä
ä
t toa
t toa
ù
ù
n
n
DFS
DFS
xa
xa
ù
ù
c
c
đ
đ
ònh ca
ònh ca
ù
ù
c
c
tha
tha
ø
ø
nh pha
nh pha
à
à
n liên thông
n liên thông
Algorithm DFS(v, id)
Input: Một đỉnh v của đồ thò, chỉ
số id của tplt
Output: Gán nhãn id cho tất cả
các đỉnh của tplt
Comp[v] =id;
for (mọi đỉnh k kề với v) do
if Comp[k]= 0 then
Gọi đệ qui DFS(k, id);
Algorithm DFS(v, id)
Algorithm DFS(v, id)
Input:
Input:
Mo
Mo
ä
ä
t
t
đỉ
đỉ
nh
nh
v
v
cu
cu
û
û
a
a
đ
đ
o
o
à
à
thò
thò
,
,
ch
ch
ỉ
ỉ
so
so
á
á
id
id
cu
cu
û
û
a tplt
a tplt
Output:
Output:
Ga
Ga
ù
ù
n nhãn
n nhãn
id
id
cho ta
cho ta
á
á
t ca
t ca
û
û
ca
ca
ù
ù
c
c
đỉ
đỉ
nh cu
nh cu
û
û
a tplt
a tplt
Comp[v]
Comp[v]
=id;
=id;
for
for
(
(
mo
mo
ï
ï
i
i
đỉ
đỉ
nh
nh
k
k
ke
ke
à
à
vơ
vơ
ù
ù
i
i
v)
v)
do
do
if
if
Comp[k]= 0
Comp[k]= 0
then
then
Go
Go
ï
ï
i
i
đ
đ
e
e
ä
ä
qui
qui
DFS(k, id);
DFS(k, id);
D
D
ư
ư
ơng Anh
ơng Anh
Đứ
Đứ
c
c
–
–
Nha
Nha
ä
ä
p môn Ca
p môn Ca
á
á
u tru
u tru
ù
ù
c D
c D
ư
ư
õ lie
õ lie
ä
ä
u va
u va
ø
ø
Gia
Gia
û
û
i thua
i thua
ä
ä
t
t
16
16
Thua
Thua
ä
ä
t toa
t toa
ù
ù
n
n
DFS
DFS
xa
xa
ù
ù
c
c
đ
đ
ònh ca
ònh ca
ù
ù
c
c
tha
tha
ø
ø
nh pha
nh pha
à
à
n liên thông
n liên thông
Algorithm
Algorithm
ThanhPhanLT
ThanhPhanLT
Input:
Input:
Đ
Đ
o
o
à
à
thò
thò
G
G
Output:
Output:
Ma
Ma
û
û
ng
ng
Comp
Comp
cho bie
cho bie
á
á
t ca
t ca
ù
ù
c tplt
c tplt
id
id
= 0;
= 0;
for
for
k = 1 to N
k = 1 to N
do
do
Comp[k] = 0;
Comp[k] = 0;
for
for
k = 1 to N
k = 1 to N
do
do
if
if
(Comp[k] = 0)
(Comp[k] = 0)
then
then
id++;
id++;
DFS(k, id);
DFS(k, id);