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
您的第一個輸入中沒有循環。讓我們分解一下:
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
程序)可能會幫助您輕鬆地視覺化這些循環!