이것은 토폴로지 정렬의 완벽한 예입니다. 순회를 통해 주문 요구 사항을 따르는 세트를 만드는 가장 일반적인 알고리즘은 Kahn's Algorithm입니다. 의사 코드는 아래에서 볼 수 있으며 Wikipedia 링크의 정보는 시작할 수있을만큼 충분해야합니다.
L ← Empty list that will contain the sorted elements
S ← Set of all nodes with no incoming edges
while S is non-empty do
remove a node n from S
add n to tail of L
for each node m with an edge e from n to m do
remove edge e from the graph
if m has no other incoming edges then
insert m into S
if graph has edges then
return error (graph has at least one cycle)
else
return L (a topologically sorted order)
"시작 노드"는 그래프에서 들어오는 가장자리를 적절하게 나타내므로 적용됩니다. 시작할 유일한 노드는 S
입니다. 다른 정보를 원할 경우 의견에 알려주십시오.
이렇게해야합니다. 이것을 구현하게하고 내 피드백을 공유 할 것입니다. –