Rekurencja

void rekurencja (lista_parametrów)
{

instrukcje1
if(warunek)
  rekurencja (parametry)
instrukcja2
}


To wywołanie się kończy, sterowanie jest przekazywanej do poprzedniegowywołania rekurencja (), które wywołało bieżące. Tutaj znowu jest wykonywanie instrukcji2 i powrót do wywołania poprzedniego.





Użycie rekurencji

#include <iostream>
void countdown (int n);

int main()
{
countdown(4);
return 0;
}


int countdown (int n)
{
using namespace std;
cout << "Odliczone .." << n << endl;
if(n>0)
   countdown(n-1);
cout << n << ". Bach - bach! \n";
}

Odliczanie ... 4
Odliczanie ... 3
Odliczanie ... 2
Odliczanie ... 1
Odliczanie ... 0
0. Bach - bach!
1. Bach - bach!
2. Bach - bach!
3. Bach - bach!
4. Bach - bach!


Rekurencja w wielu wywołaniach - Strategia dziel i miażdż


użycie rekurencji do dzielenia kolejki
#include <iostream>
const int Len = 66;
const int Divs = 6;
void subdiver char ar[], int low, int hidh, int level);

int main()
{
char ruler[len];
int i;
for(i =1; i<len-2; i++)
  ruler[i]=' ';

ruler[len-1] = '\O';
int max = len -2
int min = 0
ruler[min] = ruler[max] = '/'
std::cout << ruler << std::endl;
for(int j =1; j<len-2; j++)
  ruler[j] = ' '; //zerowanie linijki
return 0;
}



void subdivide (char ar[], int low, int high, int level)
{
if(level ==0)
  return;
int mid = (high + low)/2
ar[mid] = '/'
subdivie(ar, low, mid, level-1)
subdivie(ar, mid, high, level-1)
}

Komentarze

Popularne posty z tego bloga

Kubernetes

Helm

Ansible Tower / AWX