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
back  home  next