Professional Documents
Culture Documents
BT - Mã Giả - Đáp án
BT - Mã Giả - Đáp án
Sử dụng tài liệu Pseudocode – Guide để thực hiện các yêu cầu sau
Bài 1. Viết mã giả cho thuật toán duyệt đồ thị theo chiều sâu (DFS).
Algorithm 1: Depth-First Search (DFS)
3.
L[v] là danh sách các đỉnh kế cận với v
4.
Output: Đồ thị đã được duyệt qua các đỉnh theo thứ tự chiều sâu
5.
function DepthFirstSearch(G)
6. for v = 1 to n
7. visited[v] = 0;
endfor
8.
for v = 1 to n
9.
if visited[v] = 0 then
10.
dfs(v);
11. endif
12. endfor
endfunction
13.
function dfs(v)
14.
visited[v] = 1;
15.
for w in L[v]
16. if visited[w] = 0 then
17. dfs(w)
endif
18.
endfor
19.
endfunction
20.
21.
22.
Bài 2. Viết mã giả cho thuật toán duyệt đồ thị theo chiều rộng (BFS).
Algorithm 2: Breadth-First Search (BFS)
6.
visited[s] = 1;
7. Khởi tạo Q;
Q.enqueue(s);
8.
while !Q.empty() do
9. v = Q.dequeue();
for w in L[v]
10. if visited[w] = 0 then
visited[w] = 1;
11.
Q.enqueu(w);
endif
12.
endfor
13. endwhile
}
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
1. Q = {0}, visited = [1,0,0,0,0,0,0,0]
2. Q = {1}, visited = [1,1,0,0,0,0,0,0]
3. Q = {3}, visited = [1,1,0,1,0,0,0,0]
4. Q = {2,4}, visited = [1,1,1,1,1,0,0,0]
5. Q = {4}, visited = [1,1,1,1,1,0,0,0]
6. Q = {5}, visited = [1,1,1,1,1,1,0,0]
7. Q = {6}, visited = [1,1,1,1,1,1,1,0]
8. Q = {7}, visited = [1,1,1,1,1,1,1,1]
9. Q = {}, visited = [1,1,1,1,1,1,1,1]
Bài 3. Viết mã giả cho thuật toán xác định chu trình Euler (nếu có) của đồ thị?
Bài 4. Viết mã giả cho thuật toán xác định đường đi Euler (nếu có) của đồ thị?
Bài 5. Viết mã giả cho thuật toán xác định chu trình Hamilton (nếu có) của đồ thị?
Bước 1:
Bước 2: