Дървета
  1. Да се реализира абстрактен тип данни "двоично дърво" с конструктор make-tree, селектори root-tree, left-tree, right-tree, предикати empty-tree?, leaf?
  2. Да се напише функция (depth t), която намира дълбочината на дървото t.
  3. Да се напише функция (leaves t), която намира списък от листата на дървото t.
  4. Да се напише функция (mapt f t), която прилага функцията f над всички елементи на дървото t.
  5. Да се напише функция (copy-replace t1 t2), която копира елементите на t2 в t1, като при разлики използва съответните елементи от t2
  6. Да се напише функция (level k t), която намира списък от всички елементи в дървото на ниво k.
  7. Да се напише функция (levels t), която намира списък от всички нива в дървото. Опитайте се да напишете функцията без използване на level
  8. Да се напише функция (path n1 n2 t), която намира пътя от възел n1 до възел n2 (в посока от корена към листата), ако такъв има или #f иначе. Упътване: напишете функция (find n t), която намира поддървото с корен n и функция (path-from n t), която намира път от корена до възела n.
Мутиращи операции:
  1. Напишете функция (cycle-list l), която преобразува обикновения списък l в цикличен.
Последно модифициране: събота, 12 ноември 2011, 17:38