Moderní programování v C++11

Zadání příkladu - Strom

Navrhněte a implementujte datovou strukturu Strom.

  • pro uložení a manipulaci s prvky použijte možnosti C++11
    • chytré ukazatele
    • STL
  • implementujte na této struktuře metody begin() a end() aby ji bylo možné použít s range for-cyklem
  • strom naimplementujte jako univerzální datovou strukturu (šablona)
  • připravte pro strom několik operací
    • vstup a výstup v závorkovém formátu
    • suma
    • maximální hloubka listu
    • minimální hloubka listu
    • maximální hodnota
    • maximální hodnota na listech
    • průměrná hodnota
    • průměrná hodnota na listech
    • průměrná hodnota na maximální hloubce