# グラフgに対するトポロジカルソート
topologicalSort(g):
Queue que
# 入次数を計算
for u ← 0 to g.N - 1:
for v in g.adjLists[u]:
deg[v]++
for v ← 0 to g.N - 1:
if deg[v] = 0:
que.enqueue(v)
t ← 1
while not que.empty():
u ← que.dequeue()
order[u] ← t++
for v in g.adjLists[u]:
deg[v]--
if deg[v] = 0:
q.enqueue(v)