주어진 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'을 적절하게 추가 할 수 있습니까? n의 짝수 만 허용됩니다.
2 개의 잎을 더하는 것
임의의 트리에 3 개의 잎을 추가한다는 것은 무엇을 의미합니까? 사진을 그릴 수 있습니까? –
그림에 대한 링크를 추가했습니다. 죄송합니다. 약간 엉터리입니다. – SmokedHering
"나무를 퇴보시키지 않고"-이게 정확히 무슨 뜻입니까? 나무가 어떤 방식으로 균형을 이루어야합니까? – chi