Duyệt Theo Chiều Sâu (Depth First Search)
3. Các phép duyệt đồ thị
3.1. Duyệt theo chiều sâu (Depth First Search)
3.1.1. Phép duyệt.
Hình 7.7: Ma trận danh sách kề của đồ thị vô hướng
A
C D
B
Hình 7.8: Ma trận danh sách kề của đồ thị định hướng
A
C D
129
Xuất phát từ một đỉnh v được thăm, tiếp theo đỉnh w chưa được thăm kề với v được chọn và một phép duyệt theo chiều sâu xuất phát từ w lại được thực hiện với các đỉnh w1 kề với w,… khi hết một nhánh thì được chuyển sang nhánh khác. Phép duyệt theo nguyên tắc này được gọi là duyệt theo chiều sâu.
Phép duyệt sẽ kết thúc khi không có một đỉnh nào kề với đỉnh đã được thăm mà chưa được thăm
Giả thiết, với đồ thị hình 7.9 và đỉnh xuất phát là v1, thì phép duyệt theo chiều sâu sẽ được một dãy các đỉnh sau:
v1, v2 (cũng có thể v3), v4 (cũng có thể v5), v5, v3, v7 do v7 không có đỉnh kề nào chưa được thăm nên phải quay lại v3 và cuối cùng là v6.
3.1.2. Giải thuật.
Để kiểm tra việc duyệt mỗi đỉnh đúng một lần ta dùng một mảng mart gồm n phần tử tương ứng với n đỉnh của đồ thị. Khởi đầu gán giá trị 0 cho tất cả các phần tử của mảng, mỗi khi có một đỉnh i được thăm ta sẽ gán mart[i]=1.
Giải thuật được mô tả bằng hàm đệ qui DFS (Depth First Search) như sau: void DFS(int v)
{ thăm đỉnh v: mart[v]=1
for mỗi đỉnh w kề với v
if (mart[w]==0) { mart[w]=1;
DFS(w);}
3.1.3. Ứng dụng của giải thuật.
Nhiều giải thuật sử dụng giải thuật duyệt theo chiều sâu: - Xác định các thành phần liên thông của đồ thị - Sắp xếp tô pô cho đồ thị.
Hình 7.9: Đồ thị không định hướng, liên thông
1 2 4 5 3 6 7
130
- Xác định các thành phần liên thông mạnh của đồ thị có hướng - …
Từ khóa » Duyệt Ma Trận Theo Chiều Sâu
-
Thuật Toán Về Tìm Kiếm Theo Chiều Sâu DFS Bằng Ngôn Ngữ C/C++
-
Tìm Kiếm Theo Chiều Sâu – Wikipedia Tiếng Việt
-
Các Giải Thuật Tìm Kiếm Trên đồ Thị - Viblo
-
2.DUYỆT ĐỒ THỊ THEO CHIỀU SÂU - Fish IT
-
Cài đặt Ma Trận Kề Biểu Diễn đồ Thị, Duyệt Theo Chiều Sau, Chiều Rộng ...
-
Nhờ Giúp đỡ Cài Thuật Toán Duyệt đồ Thị Theo Chiều Sâu - Programming
-
Bài 4: Thuật Toán Tìm Kiếm Theo Chiều Sâu DFS Pascal C++
-
Duyệt đồ Thị Theo Chiều Sâu C++ - Tin Tức Giáo Dục Học Tập Tiny
-
Giải Thuật Tìm Kiếm Theo Chiều Sâu - Hoclaptrinh
-
Thực Hành Cài đặt Duyệt đồ Thị Bằng Ma Trận Kề Với DFS Và BFS
-
Tìm Kiếm Theo Chiều Sâu DFS - Depth First Search - Toán Rời Rạc
-
#3 [Lý Thuyết đồ Thị]. Thuật Toán Tìm Kiếm Theo Chiều Sâu Trên Đồ ...
-
[PDF] Bài 6: Các Thuật Toán Tìm Kiếm Trên đồ Thị Và Một Số ứng - Topica