伪代码:深度优先搜索及广度优先搜索
时间: 2023-11-03 15:04:09 浏览: 185
深度优先搜索和广度优先搜索
深度优先搜索伪代码:
```
function dfs(node, visited):
visited.add(node)
for neighbor in node.neighbors:
if neighbor not in visited:
dfs(neighbor, visited)
```
广度优先搜索伪代码:
```
function bfs(start):
visited = set()
queue = []
queue.append(start)
visited.add(start)
while queue:
node = queue.pop(0)
for neighbor in node.neighbors:
if neighbor not in visited:
visited.add(neighbor)
queue.append(neighbor)
```
其中 `node` 表示当前节点,`visited` 表示已访问的节点集合,`neighbor` 表示当前节点的邻居节点。在深度优先搜索中,我们先访问当前节点,然后递归访问它的未访问过的邻居节点。在广度优先搜索中,我们使用队列来存储待访问的节点,每次取出队列中的第一个节点并访问它的所有邻居节点,然后将未访问的邻居节点加入队列中。
阅读全文