Lekce 3 - Stromová rekurze – Obecné stromy
V předchozí lekci, Stromová rekurze - Generování všech možností, jsme se naučili využít rekurzivních metod pro vygenerování všech možností při řešení nějaké úlohy.
V dnešním tutoriálu o rekurzivních algoritmech si ukážeme, jak vytvořit rekurzivní metody, ve kterých schéma volání tvoří obecné stromy.
Zobecníme si tak látku z lekce Stromová rekurze - Generování všech možností, kde schéma volání tvořilo binární stromy. Princip je obdobný, ale tentokrát budeme vytvářet rekurzivní potomky metody v cyklu.
Dnešní látku si předvedeme na dvou příkladech:
- nejprve vytvoříme metodu, která nám vypíše obsah daného adresáře,
- potom naprogramujeme metodu, která klientovi vypíše všechny možnosti, jakými mu bankomat může vyplatit požadovanou částku.
Výpis obsahu adresáře
Představme si, že chceme na monitor vypsat obsah adresáře. Daný adresář může kromě souborů obsahovat libovolný počet dalších adresářů, ty pak mohou obsahovat další adresáře atd. Struktura může vypadat třeba takto:

Taková úloha je přímo stvořena pro rekurzivní řešení, které je zde velmi jednoduché. V metodě zjistíme seznam všech položek adresáře a potom položky postupně projdeme. Pokud je položkou soubor, vypíšeme jeho jméno, pokud je to adresář, vypíšeme jeho obsah tak, že na něj zavoláme stejnou metodu:
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V tutoriálu o rekurzivních algoritmech se budeme věnovat tvorbě metod, u kterých schéma rekurzivních volání tvoří obecné stromy.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.