6 листовых узлов в ракетке - PullRequest
0 голосов
/ 28 февраля 2019

Итак, у меня есть код ниже, который прекрасно реализуется (определите myleaf (interior-node 'a (leaf-node 5) (leaf-node 6))).это уже определено

Как я могу реализовать 6-ти конечный узел для большего количества данных?

    define-datatype bintree bintree?
  (leaf-node
    (datum number?)
  )
  (interior-node
   (key symbol?)
   (left bintree?)
   (right bintree?)
  )
)

1 Ответ

0 голосов
/ 28 февраля 2019

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

(define-datatype bintree bintree?
     (leaf-node
       (datum number?)
     )
     (interior-node
      (key symbol?)
      (first  bintree?)
      (second bintree?)
      (third  bintree?)
      (fourth bintree?)
      (fifth  bintree?)
      (sixth  bintree?)
     )
   )

define-datatype в основном работает так:

  • первый аргумент: имя нового типа данных
  • второй аргумент: имя функции, которую вы будете использовать для проверки, является ли что-то экземпляром этого типа
  • next:все различные типы этого типа данных, которые могут существовать, их члены, их типы

Так что в этом случае вы просто добавите новых членов для каждого из 6 нужных вам детей.

...