Hallo Leute, ich habe Fragen und brauche Hilfe. Vielleicht ist es offtopic, aber ich habe es bereits auf Code Review geschrieben, aber noones Antworten. Ich habe dies mit Pseudocode geschrieben, und ich bin steckengeblieben. Ich sollte prüfen, ob die Anzahl der Vertices in einer Komponente gerade ist. Meine Idee ist, DFS zu implementieren und einen Zähler zu setzen und dann zu überprüfen, ob der Zähler% 2 == 0 ist oder nicht. Mein Problem ist, ich weiß nicht, wo ich den Schalter stellen soll. Sagen wir DFS: ist die Hauptmethode.Depth First Search Algorithm - Zähle verbundene Komponenten
G = (V, E) V- Ecken, E-Kanten s-Startpunkt (Vertex)
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)`
In DFS1 Summenwert aller rekursive Aufrufe an DFS1 und gibt diesen Wert plus 1 zurück –
Können Sie mir bitte ein bisschen genauer erklären, warum Wert +1, und wo initialisiere ich diese Summe? Wenn ich es dort int sum = 0 setze, wird es wegen der rekursiven Methode immer 0 sein. Vielleicht verstehe ich das nicht, aber würde mich freuen wenn du mir das erklären könntest –