Beispiel: Gesucht wird der größte Wert ab einem bestimmten Knoten im binären Baum.
Code: Alles auswählen
Node p = startKnoten;
while(true) {
if(p == null || p.right == null) {
break;
} else {
p = p.right;
}
}
Code: Alles auswählen
Node p = startKnoten;
while(true) {
if(p == null || p.right == null) {
break;
} else {
p = p.right;
}
}
Warum soll das als rekursiv gelten, wo ist die Rekursionescape hat geschrieben: Gilt das als rekursiv?
Code: Alles auswählen
function recFun(node p) {
if(p.right == null) {
return p;
} else {
return recFun(p.right);
}
}
Code: Alles auswählen
Node p = startKnoten;
while(!(p == null || p.right == null)) {
p = p.right;
}
Neinescape hat geschrieben:Also ist die while(true)-Lösung keine Rekursion
Wenn Sie damit die allgemein bekannte Aussage meinen, dass jede Iteration in eine äquivalente Rekursion umgewandelt werden kann, stimme ich Ihnen zu. Ansonsten ist mir nicht klar, was Sie mit diesem Satz meinen.escape hat geschrieben: sondern lediglich eine Iteration die - vom Ablauf her und oberflächlich - das gleiche tut wie eine Rekursion?
Das kann wohl nur ein Missverständnis gewesen sein.escape hat geschrieben: Ich hatte zwei Tutoren so verstanden, dass while(true) eine rekursive Lösung ist.
Und zwar heftigescape hat geschrieben: Ein Kumpel hingegen hat im Testat gesagt bekommen, dass es keine ist und in der Klausur Punktabzug droht.