You are on page 1of 17

Bài tập - Chương 2:

Các phương pháp duyệt đồ thị

Môn học: Lý thuyết đồ thị

PGS.TS. Dương Tuấn Anh

1
Bài tập 1
Cho một đồ thị vô hướng như trong hình vẽ sau:

c d

a b

f
e

a) Hãy biểu diễn đồ thị bằng tập danh sách kế cận.


b) Hãy chạy từng bước giải thuật breadth-first search (thể hiện qua
trạng thái của queue) khi áp dụng vào đồ thi trên, giả sử ta khởi
sự quá trình duyệt từ đỉnh a.
2
Bài tập 2. Cho một đồ thị vô hướng như trong hình vẽ sau:
 a. Biểu diễn đồ thị trên bằng tập danh sách kế cận.
 b. Biểu diễn đồ thị trên bằng ma trận kế cận.

3
 c. Mô tả từng bước nội dung của stack khi ta dùng duyệt
theo chiều sâu trước để duyệt đồ thị nêu trên (xuất phát
từ đỉnh a). Và cho biết thứ tự các đỉnh được xử lý trong
quá trình duyệt theo chiều sâu trước. Vẽ rừng DFS của
quá trình duyệt theo chiều sâu trước.
Lưu ý: Áp dụng hai trường hợp: DFS lặp và DFS đệ quy
 d. Mô tả từng bước nội dung của hàng đợi khi ta dùng

duyệt theo chiều rộng trước để duyệt đồ thị nêu trên


(xuất phát từ đỉnh a). Và cho biết thứ tự các đỉnh được
xử lý trong quá trình duyệt theo chiều rộng trước. Vẽ
rừng BFS của quá trình duyệt theo chiều rộng trước.

4
Bài tập 3

Mô tả từng bước nội dung


của stack khi ta dùng duyệt
theo chiều sâu trước (đệ
quy) để duyệt đồ thị nêu trên
(xuất phát từ đỉnh A). Và cho
biết thứ tự các đỉnh được xử
lý trong quá trình duyệt theo
chiều sâu trước. Vẽ cây
DFS của quá trình duyệt
theo chiều sâu trước.

5
Bài tập 4
Cho một đồ thị có hướng như trong hình sau:

a. Hãy biểu diễn đồ thị trên bằng tập


danh sách kế cận.
c. Mô tả từng bước nội dung của hàng
đợi khi ta dùng duyệt theo chiều rộng
trước để duyệt đồ thị nêu trên nhằm
tìm ra cách đi từ đỉnh A đến đỉnh J.

6
Bài tập 5

Mô tả từng bước nội dung của hàng đợi khi ta áp dụng giải thuật
duyệt theo chiều rộng trước để tìm ra cách đi ngắn nhất từ đỉnh V3
đến đỉnh V7.

7
Bài tập 6

Mô tả từng bước nội dung của


stack khi ta áp dụng giải thuật
duyệt theo chiều sâu trước (đệ quy)
để tìm tất cả những đỉnh đến được
từ đỉnh J.

8
Bài tập 7

 Hãy cải biên giải thuật duyệt theo chiều rộng trước thành
giải thuật tìm một lối đi ngắn nhất từ đỉnh x đến đỉnh y
trong một đồ thị vô hướng (giả sử đồ thị được biểu diễn
bằng tập danh sách kề)

9
Bài tập 8. Cho một đồ thị có hướng như trong hình vẽ sau:
a

f e c

a. Tạo tập danh sách kế cận biểu diễn đồ thị có hướng nêu trên.
b. Dùng phương pháp 1 (dùng stack) tìm một thứ tự tô pô cho đồ thị
nêu trên.

10
Bài tập 9

Cho một đồ thị có hướng như trong hình vẽ sau

Mô tả sự áp dụng phương pháp 2 (dùng hàng đợi) để tìm


một thứ tự tô pô cho đồ thị này

11
Bài tập 10. Cho một đồ thị có hướng mà tập danh sách kế
cận diễn tả đồ thị như sau:
a: b  c 
b: e  g 
c: f 
d: a  b  c  f
e: 
f: 
g: e  f 
 
a) Hãy vẽ đồ thị có hướng ứng với tập danh sách kế cận
nêu trên.
b) Mô tả sự áp dụng từng bước phương pháp thứ hai
(dùng queue) để tìm một thứ tự tô pô cho đồ thị có hướng
nêu trên.

12
Bài tập 11

 Hãy cải biên giải thuật phát hiện chu trình trong đồ thị vô
hướng (dựa vào DFS) thành giải thuật phát hiện chu
trình trong đồ thị có hướng.
 Gợi ý: Trong đồ thị có hướng, có thể có hai cạnh trái
chiều nối hai đỉnh với nhau tạo ra một chu trình. Và cạnh
nối vòng (loop) cũng có thể tạo ra chu trình.

13
Bài tập 12

Giả sử chúng ta không có thông tin về indegree và


outdegree cho mỗi đỉnh trong một đồ thị có hướng
a) Làm cách nào để xét xem một đỉnh có phải là đỉnh
nguồn (đỉnh nguồn là đỉnh không có đỉnh đi trước) trong
một đồ thị có hướng khi đồ thị được biểu diễn bằng ma
trận kế cận?
b) Làm cách nào để xét xem một đỉnh có phải là đỉnh
nguồn trong một đồ thị có hướng khi đồ thị được biểu diễn
bằng tập danh sách kế cận?

14
ANS:

 a) Một đỉnh là đỉnh nguồn nếu và chỉ nếu cột dành


cho đỉnh ấy trong ma trận kế cận chỉ chứa 0. Việc
tìm kiếm một đỉnh như vậy tốn O(V).
 b) Một đỉnh là đỉnh nguồn nếu và chỉ nếu đỉnh ấy
không hề xuất hiện trong danh sách kế cận của bất
kỳ đỉnh nào khác. Việc tìm kiếm một đỉnh như vậy
tốn O(E).

15
Bài tập 13

 Cho một đồ thị có hướng như trong hình vẽ sau:

Áp dụng DFS (đệ quy) để duyệt đồ thị nêu trên với đỉnh xuất
phát là đỉnh s. Vẽ cây DFS diễn tả quá trình duyệt đồ thị.

16
Bài tập 14
Cho một đồ thị vô hướng như trong hình vẽ sau:

Áp dụng DFS (đệ quy) để phát hiện một chu trình trong đồ
thị này.

17

You might also like