1. Да се реализира кореново дърво (а) чрез свързано представяне със списък от наследници (б) чрез свързано представяне с указатели към най-ляво дете и десен брат (в) чрез последователно представяне (корен, най-ляво дете, десен брат).
  2. Чрез използване на стек да се реализира итератор за кореново дърво, който реализира (а) префиксно (б) постфиксно обхождане
  3. Да се реализира последователно представяне на двоично дърво с тройки (корен, ляво, дясно).
  4. Да се реализира шаблон за n-арно дърво с фиксиран брой наследници. Упътване: използвайте шаблон template <typename T, int n> със (а) свързано (б) последователно представяне.
  5. Чрез използване на стек да се реализира итератор за двоично дърво, който реализира обхождане (а) ляво-корен-дясно (б) корен-ляво-дясно (в) ляво-дясно-корен.
  6. Да се реализира итератор за двоични дървета, който приема като параметър вида обхождане, който да извършва.
  7. Да се раздели класа Position на класове (а) StructMutatingPosition, който позволява промяна на структурата на дървото (б) ValueMutatingPosition, който не позволява промяна на структурата на дървото, но позволява промяна на стойностите, (в) ConstPosition, който позволява достъп само за четене до стойностите, записани в дървото.
  8. По даден аритметичен израз със скоби да се построи двоично дърво на израза. Да се реализира функция, която пресмята стойност на аритметичен израз, записан в двоично дърво.
  9. Да се реализира функция, която проверява дали дадено двоично дърво е двоично дърво за търсене.
Последно модифициране: четвъртък, 26 декември 2019, 16:42