3.7.7. Úlohy k řešení

  1. Vytvořte funkci, která zjistí počet uzlů ve stromu. Uvažujte různé varianty stromů a ukažte, v čem se pro ně jednotlivá řešení liší.
  2. Realizujte funkci traverse() jako metodu uzlu stromu s neomezeným větvením. Předpokládejte, že vazba mezi uzlem a jeho následníky je reprezentována a) seznamem následníků, b) ukazatelem na nejlevějšího následníka a dále ukazateli na pravého souseda.
  3. Rozšiřte definici binárního stromu o funkci void iterator(int order), která vrátí iterátor umožňující průchod všemi uzly stromu v zadaném pořadí.
  4. Rozšiřte třídu Expr o metodu int eval(), která vrátí hodnotu výrazu reprezentovaného konkrétním uzlem a jeho následníky.