3. diel - Stromová rekurzia – Všeobecné stromy
V predchádzajúcom článku, Stromová rekurzia - Generovanie všetkých možností , sme sa naučili využiť rekurzívne funkcie na vygenerovanie všetkých možností pri riešení nejakej úlohy.
V dnešnom tutoriále o rekurzívnych algoritmoch si ukážeme, ako vytvoriť rekurzívne metódy, v ktorých schéma volaní tvoria všeobecné stromy.
Zovšeobecníme si tak látku z lekcie Stromová rekurzia - Generovanie všetkých možností, kde schéma volaní tvorilo binárne stromy. Princíp je obdobný, ale tentoraz budeme vytvárať rekurzívne potomkov metódy v cykle.
Dnešnú látku si predvedieme na dvoch príkladoch:
- najprv vytvoríme metódu, ktorá nám vypíše obsah daného adresára,
- potom naprogramujeme metódu, ktorá klientovi vypíše všetky možnosti, akými mu bankomat môže vyplatiť požadovanú čiastku.
Predstavme si, že chceme na monitor vypísať obsah adresára. Daný adresár môže okrem súborov obsahovať ľubovoľný počet ďalších adresárov, tie potom môžu obsahovať ďalšie adresáre atď. Štruktúra môže vyzerať napríklad takto:
Takáto úloha je priamo stvorená pre rekurzívne riešenie, ktoré je tu veľmi jednoduché. V metóde zistíme zoznam všetkých položiek adresára a potom položky postupne prejdeme. Pokiaľ je položkou súbor, vypíšeme jeho meno, pokiaľ je to adresár, vypíšeme jeho obsah tak, že naň zavoláme seba samú:
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Kúpiť tento kurz
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V tutoriále o rekurzívnych algoritmoch sa budeme venovať tvorbe metód, pri ktorých schému rekurzívnych volaní tvoria všeobecné stromy.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.