Menu
CoddyTech

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.

quiz iconTự kiểm tra

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