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**