Я хотел бы написать функцию, которая при задании n будет точно добавлять количество листьев без вырождения дерева. Что-то вроде этого:Как управлять деревьями в Haskell
data SimpleT= L | N SimpleT SimpleT deriving Show
и addTree определяется как:
addTree::Int->SimpleT->SimpleT
addTree n (N left right) = something
Но я не могу получить это право. Работает только, что у меня есть до сих пор, только добавляет (N L L) на каждом листе:
addTree2 L = (N L L)
addTree2 (N left right)= N (addTree2 left)(addTree2 right)
Как я могу добавить «п» правильно? Разрешены только четные числа для n.
например. добавление 2 листов
Что это означает, чтобы добавить 3 листа к произвольному дереву? Можете ли вы нарисовать его? –
Я добавил ссылку на картинку. Извините, это немного дерьмово. – SmokedHering
«без дегенерации дерева» - что это значит, точно? Нужно ли каким-то образом балансировать дерево? – chi