다음 예에서 tsort는 어떻게 순서를 찾나요?
이 예에서 tsort가 루프를 보고하지 않는 이유는 무엇입니까?
$ tsort <<EOF
a b c d c b a b
EOF
a
c
b
d
그리고 이건 어때요? 감사해요.
$ tsort <<EOF
a b c d d c b a
EOF
tsort: -: input contains a loop:
tsort: a
tsort: b
a
b
tsort: -: input contains a loop:
tsort: c
tsort: d
c
d
답변1
첫 번째 입력에는 루프가 없습니다. 분석해 보겠습니다.
a b c d c b a b
또는 쌍으로 배치하십시오.
- a < b
- c < d
- c < b
- a < b (이것은 두 번 지정됩니다!)
따라서 "a"와 "c"는 모두 "b" 앞에 오고 "c"는 "d" 앞에 옵니다. 하지만 거기에는 루프가 없습니다!
하지만 두 번째 예에는 a < b, b < a(루프!) 및 c < d, d < c(루프!)라는 두 개의 직접 루프가 있습니다.
이를 다이어그램에 넣어 시각화하면(이 dot
프로그램을 확인하는 것이 좋습니다) 이러한 루프를 쉽게 시각화하는 데 도움이 될 수 있습니다!