嗨,大家好,我有問題,需要幫助。也許它是不重要的,但我已經將它發佈在Code Review上,但noones的答案。我使用僞代碼寫了這個,並且我被卡住了。我應該檢查一個連接組件中的頂點數是否是偶數。我的想法是實現DFS並將一個計數器,然後檢查計數器%2 == 0是否。我的問題是我不知道在哪裏放櫃檯。 假設DFS:是主要的方法。深度優先搜索算法 - 計數連接組件
G =(V,E)V-頂點,E-邊緣 S-開始點(頂點)
DFS(G,s):
boolean result <-- false
Discovered[v] <-- false for all Vertices V(v)
DFS1(G,s)
if (DFS1(G,u) % 2==0)
result <-- true
DFS1(G,u):
Discovered[u] <-- true
// counter ++ But where I should initialize it??
foreach Edge (v,u) incident to u
if !Discovered[v]
DFS1(G,v)`
在所有的DFS1和值遞歸調用DFS1並返回該值加上1 –
您能否詳細解釋一下我爲什麼值+1,以及我在哪裏初始化該總和?如果我把它放在那裏int sum = 0它將永遠是0,因爲遞歸方法。也許我不明白這一點,但會很感激,如果你能解釋我 –