Функция отображения дерева Haskell - PullRequest
2 голосов
/ 02 марта 2012

Я пытаюсь написать функцию, которая отображает дерево, подставляя блоки дерева с / или \ (левый или правый дочерний элемент) плюс значение Int под ними. Дерево определяется следующим образом:

    data Tree x 
      = Null
      | Leaf x
      | Node (Tree x) x (Tree x)
      deriving Show

и может содержать только пять однозначных значений, например, следующее дерево:

    Node(Node(Leaf 1)(2)(Leaf 3))(3)(Node(Null)(4)(Leaf 5))

будет отображаться так:

             3
           /   \
          2     4
         / \     \
        1   3     5

Я полагаю, что при большем количестве узлов и более высоких деревьев будет некоторое перекрытие узлов из-за ограниченного пространства, но в этом случае все должно быть в порядке, поскольку функция должна работать только с двоичными деревьями поиска.

В моем распоряжении есть функция, которая берет [[bool]] и печатает строки, заменяя логические символы, но ... я понятия не имею, как это можно использовать в данном конкретном случае ... Любая помощь быть оцененным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...