Rekursive Funktionen nehmen einen Datensatz , in der Regel eine Liste oder einen Baum , und den gleichen Vorgang für jedes Element , bis eine Aufgabe abgeschlossen ist . Sie tun dies durch die Technik der Rekursion , oder läuft eine Funktion, die sich selbst aufruft als Teil seiner Hinrichtung. Rekursion ermöglicht es Programmierern, einen einzigen Satz von Befehlen auf einer Reihe von identischen Datenelemente Arbeit schreiben. Rekursion kann für eine Vielzahl von nützlichen Aufgaben , wie die Suche eine Liste von Elementen , um den höchsten Wert lokalisieren verwendet werden. Things You
C + +-Compiler
Texteditor
anzeigen Weitere Anweisungen
1
Erstellen Sie ein Programm , das eine konstante Größe variabel für die Rekursion definiert , und definiert eine brauchen Prototyp für eine findMax Funktion :
# include using namespace std;
const int SIZE = 10;
int findMax (int list [ ] , int current_index , int highest_index );
int main () { }
2
definieren findMax Funktion nach die wichtigste Funktion , um ein Array rekursiv für den Maximalwert . Diese Funktion Schritten durch das Array , vergleicht Werte und schließlich gibt den Index des höchsten integer:
int main () { }
int findMax (int list [ ,"] , int current_index , int high_index ) { }
3
eine rekursive Basisfall im findMax Funktion Set . Diese Aussage wird halt Rekursion einmal das Ende der Liste erreicht ist :
int findMax (int list [ ] , int current_index , int high_index ) {
if ( current_index == SIZE) {return high_index ;} }
4
definieren die rekursive Suche Aktion im findMax Funktion . Die if- else-Anweisungen wird immer behaupten, dass high_index hält den Indexwert der höchsten Zahl in der Liste :
int findMax (int list [ ] , int current_index , int high_index ) {
wenn ( current_index == SIZE) {return high_index ;}
else if ( list [ high_index ] < Liste [ current_index ] ) {return findMax ( Liste (Index + 1 ) , current_index ); } else {return findMax ( Liste (Index + 1 ) , high_index );}}
5
definieren ein Array mit einer zufälligen Kombination von Zahlen innerhalb der Hauptfunktion :
int main () {
int arr [ 10] = {3 , 2, 6 , 7, 10 , 45, 8, 99 , 0, 11} ;}
6
Declare eine ganze Zahl in der Hauptfunktion , und rufen Sie die findMax Funktion den Wert dieser Zahl auf dem Index der größte Wert in der Liste :
# include using namespace std;
const int SIZE = 10;
int findMax (int list [ ] , int current_index , int highest_index );
int main () { int
arr [ 10] = {3 , 2, 6 , 7, 10 , 45, 8, 99 , 0, 11} ;
int = größte findMax (arr , 0 , 0); }
< p > int findMax (int list [ ] , int current_index , int high_index ) {
if ( current_index == SIZE) {return high_index ;}
else if ( list [ high_index ] < Liste [ current_index ] ) {return findMax ( Liste (Index + 1 ) , current_index ); } else {return findMax ( Liste (Index + 1 ) , high_index );}}