1. **Rekurze [Co je to REKURZE?](https://www.youtube.com/watch?app=desktop&v=1TzAj_HbURM&ab_channel=Grizlik%3AD)**
**Princip**,
**Nějaký objekt popsán pomocí sebe samotného**
Uvnitř funkce odkaz na tu samou funkci
**pravidla** správné rekurze,
**Je potřeba mít ověřené to aby se funkce nespouštěla do nekonečna**
Rekurzivní případ musí **zmenšovat podproblém**, aby se zajistilo, že rekurze se nakonec zastaví.
Rekurzivní funkce by měla být **efektivní** a neměla by zbytečně zatěžovat systém.
**Syntaxe**,
Rekurzivní funkce se v C# definuje jako běžná funkce, ale volá sama sebe.
Příklad:
```csharp
public int Faktorial(int n)
{
if (n == 1)
{
return 1;
}
else
{
return n * Faktorial(n - 1);
}
}
```
**Druhy**,
**Přímá** rekurze: Funkce **volá sama sebe** přímo.
**Nepřímá** rekurze: Funkce **volá jinou funkci**, **která volá původní** funkci.
**Příklady:**
**Fibonacciho posloupnost**
[https://lh7-us.googleusercontent.com/sYzasykhcX6iTZYqeeLKDroi0vp-sVpKD0EnRc4Yy4j_b4fnnXoJE30uUVItZjEu3vc9pSScHc07T6ZUFddaFT86VvXktZMc2143v63dLACJi5jg-g7fOrfPpcl35m1defIivuuNE0zlc99Idvg3M48](https://lh7-us.googleusercontent.com/sYzasykhcX6iTZYqeeLKDroi0vp-sVpKD0EnRc4Yy4j_b4fnnXoJE30uUVItZjEu3vc9pSScHc07T6ZUFddaFT86VvXktZMc2143v63dLACJi5jg-g7fOrfPpcl35m1defIivuuNE0zlc99Idvg3M48)
**Výpočet faktoriálu**
**Výpočet Fibonacciho čísel**
**Procházení stromové struktury**