Pri implementácií si
treba uvedomiť, že prázdny zoznam NIL nepočítame ako atóm.
Pre zjednodušenie použijeme viacero funkcií.
Možným riešením je, že hlavná funkcia (POCITAJ-ATOMY) zavolá funkciu, ktorá vykoná požadovanú úlohu pre prvky vľavo (vlavo) a funkciu, ktorá ju vykoná pre prvky vpravo od význačného prvku (vpravo).
Funkcia vlavo
zistí počet prvkov vľavo od význačného na hornej úrovni v
zozname a rekurzívne to isté pre všetky podzoznamy tohto
zoznamu. Ak na danej úrovni nie je význačný prvok vracia, pre
danú úroveň 0.
Pri tejto funkcii je výhodné použiť pomocný argument.
Pretože ak pri hľadaní na danej úrovni nenájdeme význačný
prvok, narazíme teda na koniec zoznamu, máme možnosť vrátiť
počet=0.
Podobne funkcia vpravo
zistí počet prvkov vpravo od význačného na hornej úrovni v
zozname a rekurzívne to isté pre všetky podzoznamy tohto
zoznamu. Ak na danej úrovni nie je význačný prvok vracia, pre
danú úroveň 0.
Funkcia na danej úrovni vždy hľadá význačný prvok, a ak ho
nájde spočíta atómy na danej úrovni za ním. Pričom, ale
pokračuje v ďalšom hľadaní pre podzoznamy na danej úrovni.
Autori | [ ZADANIE | AKO ZAČAŤ | RIEŠENIE ] Posledná aktualizácia 4. 9. 2001 |