Mã giả
Bài học 4 trên 9 trong khóa học Tìm kiếm theo chiều sâu, thuật toán đồ thị của Coddy.
buildAdjacency(n, edges):
adj = n empty lists
for each pair (u, v) in edges:
adj[u].add(v)
adj[v].add(u) # undirected
sort every adj[i] ascending
dfs(n, edges, start):
build adjacency
visited = all false
stack = [start]
order = []
while stack not empty:
node = stack.pop()
if visited[node]: continue
visited[node] = true
order.add(node)
for nb in adj[node] from last to first:
if not visited[nb]: stack.push(nb)
return order- Danh sách kề chuyển mảng cạnh phẳng thành danh sách đã sắp xếp gồm các đỉnh kề với từng đỉnh.
- Đẩy các đỉnh kề theo thứ tự từ cuối đến đầu giúp ngăn xếp trả về đỉnh kề nhỏ nhất trước, nhờ đó thứ tự duyệt luôn xác định.
Tự làm thử
Bài học này không có thử thách code.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Tìm kiếm theo chiều sâu, thuật toán đồ thị
Tự luyện tập: Trình biên dịch C online