이 예에서 tsort가 루프를 보고하지 않는 이유는 무엇입니까?

이 예에서 tsort가 루프를 보고하지 않는 이유는 무엇입니까?

다음 예에서 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프로그램을 확인하는 것이 좋습니다) 이러한 루프를 쉽게 시각화하는 데 도움이 될 수 있습니다!

관련 정보