Tsort

為什麼 tsort 在此範例中不報告任何循環?

  • November 17, 2018

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

您的第一個輸入中沒有循環。讓我們分解一下:

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程序)可能會幫助您輕鬆地視覺化這些循環!

引用自:https://unix.stackexchange.com/questions/482364