【发布时间】:2013-06-04 17:13:09
【问题描述】:
我需要 3 项任务的帮助。我是 Haskell 和函数式编程的新手。
data Tree = Node Int Tree Tree | Nil
-
借助函数
collapse定义collapse :: Tree -> [Int] collapse Nil = [] collapse (Node x y z) = (collapse y) ++ [x] ++ (collapse z)一个 Haskell 函数
check :: Tree -> Bool检查树是否是二叉搜索树。我用一棵树测试它并得到
2 4 7 8 10 | 5 6 10 12。在这里您可以看到中间的所有值都已排序,但我不知道我应该如何编码。 定义一个 Haskell-Function
insert :: Int -> Tree -> Tree将整数值添加到树并返回二叉搜索树。使用函数
insert(2) 定义一个 Haskell 函数merge :: Tree -> Tree -> Tree,它将两棵树合并到另一棵二叉搜索树。
【问题讨论】:
-
collapse是有序遍历。二叉树的中序遍历特性是二叉搜索树的特征? -
二叉树的左节点值(int)小于父节点,右节点值大于父节点和每个子节点的值。
-
二叉树是二叉搜索树当且仅当它的中序遍历是...?
-
...严格增加:)
标签: haskell insert merge tree binary-search-tree