Merhabalar, sorularım var ve yardıma ihtiyacım var. Belki de bu konu kapalı olsa da, bunu Kod İnceleme'ye yazdım, ancak cevaplar verdim. Bunu sahte kod kullanarak yazdım ve sıkıştım.Konferanslı bir bileşendeki Vertis sayısı eşit olup olmadığını incelemeliyim. Benim fikrim, DFS'yi uygulamak ve bir sayaç koymak ve% 2 == 0 değerinin olup olmadığını kontrol etmek. Benim problemim nereye karşı koymak bilmiyorum. DFS: ana yöntem diyelim.Derinlik İlk Arama Algoritması - bağlı bileşenlerin sayılması
G = (V, E) V özet olarak, e-kenarları s başlangıç noktası (tepe)
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'e özyinelemeli çağrılar ve bu değeri artı 1 –
döndürür. Bana biraz daha ayrıntılı olarak açıklayabilir misiniz, neden +1 değerine ve bu toplamı nereden başlatabilirim? Eğer ben koydum int öz = 0, her zaman 0 olacaktır, özyinelemeli yöntem. Belki de bunu anlamıyorum, ama bana –