Rekurze (programování): Porovnání verzí

Smazaný obsah Přidaný obsah
Jusephe (diskuse | příspěvky)
m →‎Koncová rekurze: přidání odkazu na článek
m Robot: -zastaralá značka HTML; kosmetické úpravy
Řádek 33:
Při deklaraci datových struktur rekurze znamená, že určitá struktura (objekt) obsahuje odkaz na strukturu stejného typu.
;Rekurzivní definice binárního stromu (jazyk C)
<sourcesyntaxhighlight lang="c">
typedef struct { // definice typu uzel
unsigned int data;
uzel *levyPotomek; // potomek je také typu uzel
uzel *pravyPotomek;
} uzel
</syntaxhighlight>
</source>
 
=== Algoritmy ===
Řádek 45:
 
;Průchod stromem (jazyk C)
<sourcesyntaxhighlight lang="c">
void ProjdiStrom(uzel x) {
unsigned int i = 0;
Řádek 54:
ZpracujUzel(x); // zde jsou prováděny operace s daty uloženými v daném uzlu
}
</syntaxhighlight>
</source>
 
Pro zpracování celého stromu zavoláme proceduru a jako parametr jí předáme kořen stromu. Procedura pak rekurzivně volá sebe sama pro potomky aktuálního uzlu (čili pro podstromy daného stromu), dokud nedosáhne k uzlům, které nemají žádné potomky (v grafové terminologii ''listy'').
Řádek 130:
 
;QuickSort (jazyk C++)
<sourcesyntaxhighlight lang="cpp">
void QuickSort(int Array[], int Left, int Right) {
int i, tmp, pivot, l, r;
Řádek 158:
if (l < Right) { QuickSort(Array, l, Right); }
}
</syntaxhighlight>
</source>
 
=== Robot Karel ===