Ich habe eine sehr einfache Funktion, um den maximalen, nicht negativen Wert eines ganzen Zahlenstapels herauszufinden. Ich möchte diese Funktion in eine rekursive transformieren. Es gibt mehr Punkte im Auge zu behalten:Rekursive Funktion auf Stack
- Bevor die Funktion ausgeführt wird, haben wir
num
initialisiert, haben aber keinen Wert zugewiesen. Und bitte, sollten wir nicht darauf verlassen, dass C automatisch 0-num
unter bestimmten Bedingungen - Nach dem Ausführen der Funktion des Stapel
s
leer vergeben werden und wir haben den maximalen nicht negativen Wert gespeichert innum
- I ist ein Anfänger in C und Datenstrukturen, also bitte schön :)
Dies ist die iterative Funktion:
void max_stack(stack *s, int *num){
*num = 0;
int aux = 0;
while (!emptyStack(*s)){
aux = top(*s);
pop(s);
if (aux>*num){
*num = aux;
}
}
}
Ich habe keine Ahnung hat, warum diese auf ein zu transformieren wollen würde rekursive Funktion, wenn die Lösung, die Sie jetzt haben, besser für C passt als die rekursive Funktion wäre ... –
@AnttiHaapala Hausaufgabenanforderungen vielleicht? –
@AnttiHappala: Ich versuche Rekursion besser zu verstehen und möchte fließender von iterativen Funktionen zu rekursiven und umgekehrt. Das ist es. Der Zweck dieser Frage ist zu lernen. Die Einschränkungen, die ich aufgezählt habe, sollen sicherstellen, dass die beiden Funktionen 100% äquivalent sind. – Peter