Треки
/
Clojure
Clojure
/
Вправи
/
Точка зору
Точка зору

Точка зору

Складна

Вказівки

Змініть батьківський вузол дерева на вибраний вузол.

Дерево - це особливий тип графа, у якому всі вузли зʼєднані, але немає циклів. Це означає, що для будь-якої пари вузлів існує рівно один шлях від одного вузла до іншого.

Ця вправа присвячена переорієнтації дерева, щоб побачити речі з іншої точки зору. Наприклад, родинні дерева зазвичай подають з погляду предка:

    +------0------+
    |      |      |
  +-1-+  +-2-+  +-3-+
  |   |  |   |  |   |
  4   5  6   7  8   9

Але в дереві немає притаманного йому напрямку. Ту саму інформацію можна подати з погляду будь-якого іншого вузла дерева, піднявши його до кореня й потягнувши за собою всі його звʼязки. Отже, те саме дерево з погляду вузла 6 мало б такий вигляд:

        6
        |
  +-----2-----+
  |           |
  7     +-----0-----+
        |           |
      +-1-+       +-3-+
      |   |       |   |
      4   5       8   9

Це дає змогу простіше описати шляхи між двома вузлами. Наприклад, шлях 6-9 (який у першому дереві йде вгору до кореня, а потім униз до іншого листка) можна побачити як шлях 6-2-0-3-9.

Ця вправа полягає в тому, що ми беремо дерево на вході та переорієнтовуємо його з погляду одного з вузлів.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Clojure Exercism

Час розпочати Точка зору?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Clojure, а також 12 концепцій105 вправ та справжнє наставництво від людей, і все це безкоштовно.