Tải bản đầy đủ (.pdf) (18 trang)

Khoa học máy tính - Đồ thị potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (622.67 KB, 18 trang )

ð th
(Graph)
Nguy n Phương Thái
B môn Khoa H c Máy Tính – Khoa CNTT
Trư ng ð i h c Cơng ngh - ðHQGHN
Email:





ð th (graph)
• G = (V, E)
– V: T p ñ nh
– E = { (u,v) | u, v ∈ V}: T p c nh

Ví d : Bi u di n b n ñ ñư ng ñi trong thành ph b ng ñ th G = (V, E)
– V: T p h p các ñi m trong thành ph
– E: T p h p các ñư ng ñi trong thành ph , m i ñư ng ñi n i hai ñi m


ð th có hư ng và khơng có hư ng
(directed and undirected graph)

G = (V, E) là đ th khơng có hư ng n u (u, v) ∈ E thì (v, u) ∈ E


ð th có tr ng s và khơng có tr ng s
(weighted and unweighted graph)

G = (V, E) là ñ th có tr ng s n u m i c nh (u, v) ∈ E ñư c gán m t


giá tr


ð th có chu trình và khơng chu trình
(cyclic and acyclic graph)


ð th khơng có nhãn và đ th có nhãn
(unlabled and labled graph)


Friend graph


B c c a ñ nh
(vertex degree)


Bi u di n ñ th
G = (V, E); V = {0, 1,…, n-1}
• Bi u di n b ng ma tr n li n k A
– A[u][v] = 1 n u có cung (u,v)
– A[u][v] = 0 n u khơng có cung (u,v)

0

1

2


3

4

0

0

1

1

0

0

1

0

0

1

0

1

2


0

0

0

1

1

3

1

0

0

0

0

4

0

0

0


1

0


Bi u di n ñ th
G = (V, E); V = {0, 1,…, n-1}
• Bi u di n b ng danh sách k


ði qua ñ th theo chi u r ng
(Breadth first search)
• ði qua t t c các đ nh c a ñ th , m i ñ nh ñúng m t l n
• B t đ u xu t phát t m t ñ nh s, l n lư t thăm các ñ nh li n k v i s. Ti p
t c q trình thăm các đ nh theo nguyên t c: ð nh nào ñư c thăm trư c
thì các đ nh li n k v i đ nh đó s đư c thăm trư c
• Xem ví d
/>

ði qua ñ th theo chi u r ng
(Breadth first search)
//ði qua ñ th theo b r ng xu t phát t v
BreadthFirstSearch (v) {
(1) Kh i t o hàng ñ i Q r ng;
(3) Xen v vào hàng ñ i Q;
(2) ðánh d u ñ nh v ñã ñư c thăm;
(4) while (hàng đ i Q khơng r ng) {
(5)
L y ñ nh w ñ u hàng ñ i Q;
(6)

for (m i ñ nh u k w)
(7)
if ( u chưa đư c thăm) {
(8)
Xen u vào đi hàng đ i Q;
(9)
ðánh d u u ñã ñư c thăm;
}
(10)
Lo i w ra kh i hàng ñ i Q
} // h t vòng l p while.
}


ði qua ñ th theo chi u r ng
(Breadth first search)
// ði qua ñ th G=(V, E) theo b r ng
BreadthFirstSearch_traversal (G) {
(10) for (m i v ∈V)
(11)
ðánh d u v chưa ñư c thăm;
(12) for (m i v ∈V)
(13)
if (v chưa ñư c thăm)
(14)
BreadthFirstSearch(v);
}


ði qua ñ th theo chi u sâu

(Depth first search)
//ði qua ñ th theo chi u sâu xu t phát t v
DepthFirstSearch (v) {
for (m i ñ nh u k v i v)
if (u chưa ñư c thăm) {
thăm u và ñánh d u u ñã ñư c thăm
DepthFirstSearch (u)
}
}
Xem ví d
/>

ði qua ñ th theo chi u sâu
(Depth first search)
// ði qua ñ th G=(V, E) theo chi u sâu
DepthFirstSearch_traversal (G) {
(10) for (m i v ∈V)
(11)
ðánh d u v chưa ñư c thăm;
(12) for (m i v ∈V)
(13)
if (v chưa ñư c thăm)
(14)
DepthFirstSearch(v);
}



×