1
對於一個作業,我做了在Haskell二叉樹實現這樣:哈斯克爾非二叉樹
data BinTree = L | N BinTree BinTree deriving (Eq, Show)
-- this function creates the full binary tree of size 2^(n+1) -1
makeBinTree 0 = L
makeBinTree n = N (makeBinTree (n-1)) (makeBinTree (n-1))
它創建了一個二叉樹,其中每個父節點有兩個孩子。所以,makeBinTree 3有以下輸出:N(N(NLL)(NLL))(N(NLL)(NLL))
爲了我自己的理解,我希望做一棵樹,使每個父節點有任意數量的孩子。我一直堅持如何繼續。
所以輸入將是:
makeBinTree 2 3
和輸出將是:
N(NLLL)(NLLL)(NLLL)
的任何提示如何這將不勝感激。
你將需要進行新的數據類型。如果你想要一個任意數字,這意味着你想要0或更多。什麼常見的數據結構包含0個或更多元素? – bheklilr
'數據BinTree = L | N BinTree BinTree'有2個分支。數據BinTree = L | N BinTree BinTree BinTree'有3個分支。但是如果你想要一棵可以有多個分支的樹呢?這兩個定義之間保持一致以及哪些變化? – bheklilr