简单的haskell问题求解!二叉树导出成list
刚学haskell还不太清楚怎么编求解答!!dataBinTreea=Empty|Node(BinTreea)a(BinTreea)deriving(Eq,Show)fl...
刚学haskell 还不太清楚怎么编 求解答!!
data BinTree a =
Empty
| Node (BinTree a) a (BinTree a)
deriving (Eq,Show)
flatten :: BinTree a -> [a]
flatten Empty = []
flatten (Node tL x tR) = flatten tL ++ x ++ flatten tR
这个是我的程序。。。。无法编译。。求帮忙改一下!!
谢谢!!!!!!!!!!!!! 展开
data BinTree a =
Empty
| Node (BinTree a) a (BinTree a)
deriving (Eq,Show)
flatten :: BinTree a -> [a]
flatten Empty = []
flatten (Node tL x tR) = flatten tL ++ x ++ flatten tR
这个是我的程序。。。。无法编译。。求帮忙改一下!!
谢谢!!!!!!!!!!!!! 展开
2个回答
展开全部
++ 用来列表相加
所以这一句
flatten (Node tL x tR) = flatten tL ++ x ++ flatten tR
要改成
flatten (Node tL x tR) = flatten tL ++ [x] ++ flatten tR
所以这一句
flatten (Node tL x tR) = flatten tL ++ x ++ flatten tR
要改成
flatten (Node tL x tR) = flatten tL ++ [x] ++ flatten tR
追问
还有一个问题。。我要把一个二叉树镜像
mirror :: BinTree a -> BinTree a
mirror Empty = Empty
mirror Node tL x tR = (Node (mirror tR) x (mirror tL))
一直有mirror has different number of argumen 这个错误 一般怎么改? 刚开始学。。还不是很理解。。谢谢!!
追答
mirror (Node tL x tR)
Node tL x tR 整体作为mirror的一个参数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询