1
boolean backtrackDFS(v) {
If (SolutionFound(v)) return true;
Mark vertex v as reached.
for (each unreached vertex u adjacenct from v)
if (backtrakDFS(u)) return true;
Unmark vertex v;
return false;
}
這裏爲什麼需要Unmark vertex v
? 以及爲什麼添加這樣的行是安全的,因此v再次被取消,是否會導致重新訪問?回溯深度第一搜索算法僞代碼
爲什麼添加這樣的行是安全的,因此v再次被重新獲取,會導致重新訪問嗎? – colinfang 2011-05-17 11:30:45
@colinfang:不行,直到所有連接的分支都被探測完畢,纔會調用該行,所以在沒有重新訪問的機會之前它不會被清除。 – sje397 2011-05-17 11:33:52