该二维矩阵不是邻接矩阵,每个结点只和上下左右4个方向的结点有连接。
def bfs(start, matrix):
"""广搜"""
n = len(matrix)
queue = []
queue.append(start)
vis = [[False for _ in range(n)] for _ in range(n)]
vis[start[0]][start[1]] = True
dires = [[0, 1], [0, -1], [1, 0], [-1, 0]]
while queue:
x, y = queue.pop(0)
print(matrix[x][y], end=' ')
for dx, dy in dires:
nx, ny = x + dx, y + dy
if 0 <= nx < n and 0 <= ny < n and not vis[nx][ny]:
queue.append([nx, ny])
vis[nx][ny] = True
def dfs(start, matrix, vis):
"""深搜"""
dires = [[0, 1], [0, -1], [1, 0], [-1, 0]]
x, y = start[0], start[1]
print(matrix[x][y], end=' ')
vis[x][y] = True
for dx, dy in dires:
nx, ny = x + dx, y + dy
if 0 <= nx < n