【问题标题】:Standard ML Binary Tree标准 ML 二叉树
【发布时间】:2010-11-06 22:03:09
【问题描述】:

我仍然有这个问题,所以我可以寻求更多帮助。

我们得到:

datatype which = STRING of string | INT of int

第 1 部分。我们被告知需要为包含“which”类型值的二叉树创建另一个名为 whichTree 的数据类型,其中数据仅位于树的叶子处。

我认为这是正确的答案:

datatype whichTree = Empty | Leaf of which | Node of whichTree*whichTree;

结果不是我跑的时候:

val inttree = Node(Leaf(1), Leaf(2));

我收到一个错误。

我发现我可以做这样的事情:

datatype 'a whichTree = Empty | Leaf of 'a | Node of 'a whichTree * 'a whichTree;

或

datatype whichTree = Empty | Leaf of int | Node of whichTree*whichTree;

但是这些对我来说似乎都不正确,因为在我的第一种情况下,我的数据类型名称中有一个 'a,而在另一种情况下,我说的是 int 的叶子,当我应该能够使用 which 来指定 string 或 int 时。

谁能告诉我正确答案是什么或提供一些帮助?

【问题讨论】:

    标签: smlnj ml sml


    【解决方案1】:

    您对whichTree 的定义是正确的,您只是在inttree 中缺少which 的构造函数:

    val inttree = Node(Leaf(INT 1), Leaf(INT 2))
    

    【讨论】:

    • 谢谢!这就是我想要的。
    猜你喜欢
    • 2016-09-03
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 2018-04-09
    相关资源
    最近更新 更多