rekursive funksjoner ta et datasett , som regel en liste eller et tre , og utføre den samme operasjonen på hvert element til en oppgave er fullført. De gjør dette gjennom teknikken av rekursjon , eller kjører en funksjon som kaller seg selv som en del av utførelsen. Rekursjon lar programmerere å skrive et enkelt sett med kommandoer for å arbeide på en rekke identiske dataelementer. Rekursjon kan brukes til en rekke nyttige oppgaver, for eksempel å søke en liste over elementer for å finne den høyeste verdien . Du trenger
C + + kompilatoren
tekst editor
Vis flere instruksjoner
en
Lag et program som definerer en konstant størrelse variabel for rekursjon , og definerer et prototype for en findMax funksjon : en
# include bruker namespace std;
const int SIZE = 10;
int findMax ( int list [ ] , int current_index , int highest_index ) ;
int main ( ) {
}
2
Definer findMax funksjon etter den viktigste funksjonen for å søke en rekke rekursivt for maks verdi . Denne funksjonen skritt gjennom array, sammenligner verdier , og til slutt returnerer indeksen av høyeste heltall:
int main ( ) {
}
int findMax ( int list [ ,"] , int current_index , int high_index ) {
}
3
Sett opp en rekursiv base case i findMax funksjonen. Denne uttalelsen vil stanse rekursjon gang på slutten av listen er nådd : en
int findMax ( int list [ ] , int current_index , int high_index ) {
if ( current_index == SIZE ) {return high_index ;}
}
4
Definer den rekursive søker handlingen i findMax funksjonen. De if- else-påstandene vil alltid hevde at high_index holder indeksen verdien av den høyeste heltall i listen : en
int findMax ( int list [ ] , int current_index , int high_index ) {
hvis ( current_index == SIZE ) {return high_index ;}
else if ( liste [ high_index ] < list [ current_index ] ) {return findMax (liste , (indeks + 1 ) , current_index ); } else {return findMax (liste , (indeks + 1 ) , high_index ); } }
5
Definer en matrise med en tilfeldig blanding av heltall inne den viktigste funksjonen :
int main ( ) {
int arr [ 10 ] = { 3, 2 , 6, 7, 10 , 45, 8 , 99, 0 , 11 } ;}
6
Erklærer et heltall i hovedfunksjon , og kaller findMax funksjonen til å angi verdien av at heltall til indeksen av de største verdi i listen : en
# include bruker 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 størst = findMax (arr , 0 , 0 ) ;
}
< p > int findMax ( int list [ ] , int current_index , int high_index ) {
if ( current_index == SIZE ) {return high_index ;}
else if ( liste [ high_index ] < liste [ current_index ] ) {return findMax (liste , (indeks + 1 ) , current_index ); } else {return findMax (liste , (indeks + 1 ) , high_index ); } }