我已经按照指南创建了一个使用以下数据类型的二叉搜索树:
data BinarySearchTree a = EmptyTree | TreeNode a (BinarySearchTree a) (BinarySearchTree a) deriving (Show, Read, Eq)
我是否正确地说' TreeNode'正在使用递归,即创建自己的数据类型的2个元素'(BinarySearchTree a)(BinarySearchTree a)'?
我从未见过像这样的数据类型,任何简短的解释都会很棒!
答案 0 :(得分:5)
是的,这是一种递归数据类型。
我推荐Learn You A Haskell For Great Good中的相关章节 - 它非常适合初学者。它也描述了您的确切情况:
这就是我们要说的:树是空树还是树 包含一些值和两棵树的元素。听起来像个 完全适合代数数据类型!