Mô phỏng thuật toán 0-1 BFS

0-1 BFS · Nhóm: Đồ thị

0-1 BFS (0-1 BFS), nhóm Đồ thị.

Mã Python

def zero_one_bfs(adj, start):
    dist = [INF] * n
    dist[start] = 0
    dq = deque([start])
    while dq:
        u = dq.popleft()
        if done[u]: continue
        done[u] = True
        for v, w in adj[u]:
            if dist[u] + w < dist[v]:
                dist[v] = dist[u] + w
                if w == 0:
                    dq.appendleft(v)
                else:
                    dq.append(v)
    return dist

Mở trang để xem mô phỏng từng bước và xuất slide bài giảng.