"""
@Author : heyw
@Contact : he_yuanwen@126.com
@Time : 2020/2/28 14:08
@Software: PyCharm
@FileName: Graph.py
"""
G = [
{1, 2, 3},
{0, 4, 6},
{0, 3},
{0, 2, 4},
{1, 3, 5, 6},
{4, 7},
{1, 4},
{5, }
]
print("G:",G)
def dfs(G, v):
visited = set()
s = [v]
while s:
u = s.pop()
if u not in visited:
print(u, end=" ", flush=True)
visited.add(u)
s.extend(G[u])
print("DFS:",end='')
dfs(G, 0)
def bfs(G, v):
queue = [v]
visited = {v}
while queue:
node = queue.pop(0)
print(node, end=" ", flush=True)
for u in G[node]:
if u not in visited:
visited.add(u)
queue.append(u)
print("\nBFS:", end='')
bfs(G, 0)
G: [{1, 2, 3}, {0, 4, 6}, {0, 3}, {0, 2, 4}, {1, 3, 5, 6}, {4, 7}, {1, 4}, {5}]
DFS:0 3 4 6 1 5 7 2
BFS:0 1 2 3 4 6 5 7