c++拓扑排序模板代码
时间: 2023-06-06 20:05:14 浏览: 114
1027 拓扑排序.docx
以下是拓扑排序的模板代码:
```python
from collections import deque
# n 为节点数,graph 为邻接表
def topo_sort(n, graph):
# 统计每个节点的入度
indegree = [0] * n
for i in range(n):
for j in graph[i]:
indegree[j] += 1
# 将入度为 0 的节点加入队列
q = deque()
for i in range(n):
if indegree[i] == 0:
q.append(i)
# 拓扑排序
res = []
while q:
cur = q.popleft()
res.append(cur)
for j in graph[cur]:
indegree[j] -= 1
if indegree[j] == 0:
q.append(j)
return res if len(res) == n else []
```
如果有任何其他关于计算机科学、技术、编程等的问题,我很乐意为您回答。
阅读全文