2015-05-26 25 views
2

5-2.Do拓撲排序下面圖G對於下面提到的錯誤,這個建議的解決方案是否正確?

enter image description here

此問題的是從「的算法設計手冊(第2版)」,由史蒂芬Skiena。由於這個圖不是DAG拓撲排序不能完成的。 在本書的勘誤列表中,建議反轉邊緣(F,H) ,但這會使頂點「H」無法訪問。那麼這個solution怎麼可能是 「A,B,D,E,C,H,G,I,J,F」。

+0

你的意思是'H'變得不可? – aioobe

+0

該解決方案是有效的,因爲所有的H(none!)的前任都在H. – aioobe

+0

之前提及,我犯了錯誤。這應該是「H」而不是「F」。 – Ganesh

回答

2

該解決方案有效,因爲H沒有提到H之前提到的繼承者,也沒有在H之後提到的前任者。

這不是任何一個陌生人比一個事實,即圖

A <- B -> C 

(其中B是「不可達」)可拓撲排序爲

B, A, C 
+0

當我解決了上述問題時,我得到了答案A,B,D,E,C,G,F,I,J,H。在這裏,我剛剛將H放在最後,因爲它並沒有違反所有頂點的前驅都應該先處理的規則。我的答案是否有效? – Ganesh

+1

嗯..不,因爲'H'會在'G'之後出現。如果你先把'H'放好,你應該沒問題。 (事實上​​,你剛剛表明我的答案不完整,答案已更新。) – aioobe

+0

想要驗證我的新答案「A,B,D,E,H,G,I,J,C,F」。在此先感謝 – Ganesh

相關問題