Cu trúc dliu và Gii thut
Đỗ Bích Dip - Khoa CNTT - ĐHBKHN 1
CutrúcdliuvàGiithut
Chương V: Đồ th(phn2)
Cây Rng trong thuyếtđồ th
Cây
zMtđồ th hướng liên
thông
zKhông chu trình
Rng
zMttpcáccâyphân
bit
Cây
Rng
Cu trúc dliu và Gii thut
Đỗ Bích Dip - Khoa CNTT - ĐHBKHN 2
Cây khung
Cho mtđồ th hướng, liên thông G
zCây khung trên G là cây chattccác đỉnh trong G
1
23
6
5
4
1
23
6
5
4
1
23
6
5
4
Đồ thCây khung Cây khung
Bài toán tìm cây khung cctiu
zCho mtđồ th hướng, liên thông trng s
zGiá trcamt cây khung là tng trng scacáccung
trong cây
zTìm mt cây khung vigiátrnhnhttrênđồ th
5
10
6
2
4
8
9
5
6
2
4
Đồ thịđuvào Cây khung cctiu
Cu trúc dliu và Gii thut
Đỗ Bích Dip - Khoa CNTT - ĐHBKHN 3
Giithut Kruskal - MST
zÝ tưởng
Lnlượt thêm vào cây khung cn tìm các cung
trng snhnhtcóđượctimtthiđimnếu
cung đó không tothànhchutrìnhtrênphncây
khung đang tmcó
Giithut Kruskal-MST
1
23
6
5
4
7
7
14
3
7
10
8
12
10
16
Đồ thban đầu
1
23
6
5
4
7
Bước1
1
23
6
5
4
7
3
Bước2
Cu trúc dliu và Gii thut
Đỗ Bích Dip - Khoa CNTT - ĐHBKHN 4
Giithut Kruskal MST
1
23
6
5
4
7
3
7
1
23
6
5
4
7
3
7
7
Bước4Bước3
1
23
6
5
4
7
7
14
3
7
10
8
12
10
16
Đồ thban đầu
Giithut Kruskal - MST
1
23
6
5
4
7
3
7
7
810
Bước6
1
23
6
5
4
7
3
7
7
8
Bước5
1
23
6
5
4
7
7
14
3
7
10
8
12
10
16
Đồ thban đầu
Cu trúc dliu và Gii thut
Đỗ Bích Dip - Khoa CNTT - ĐHBKHN 5
Giithut Kruskal - MST
1
23
6
5
4
7
3
7
7
810
10
Bước7-
Cây khung cctiu
1
23
6
5
4
7
7
14
3
7
10
8
12
10
16
Đồ thban đầu
Giithut Kruskal-MST
Algorithm KRUSKAL(G) {đồ thị G có n đỉnh}
1. {Khởi tạo các cụm ban đầu, mỗi cụm chứa 1 đỉnh của đồ thị }
for each vertex v in G do C(v) {v}.
2. Khởi tạo một Queue Q chứa các cung trong G, sắp xếp theo chiều tăng dần của trọng
số.
3. {Khởi tạo cây khung ban đầu rỗng} T ←∅
4. {Lần lượt xét các cung đưa vào trong cây khung cần tìm}
while T chứa ít hơn n-1 cung do begin
Lấy ra từ Q cung (u,v) trọng số nhỏ nhất
C(v) là cụm chứa v, C(u) là cụm chứa u.
if C(v) C(u) then begin
T = T U {(u,v)}
Nhập C(u) với C(v)
end
end
return T