我需要解决这个问题。我真的不知道。任何帮助将不胜感激。我想需要进行遍历,但我不知道如何解决这个问题。提前谢谢。
再次考虑二元树的以下第一个数据类型定义:
datatype 'a tree = Empty | Node of { lT: 'a tree, key: 'a, rT: 'a tree }
在为这个数据类型定义的二叉树编写了一些函数之后,你想测试一下 他们。您在线搜索测试用例并查找具有实际定义的二叉树的数据库 使用以下第二种数据类型:
datatype 'a tree = Empty | Node of 'a tree * 'a * 'a tree
编写一个函数“convert”,它将第二个数据类型的二叉树作为输入,并将其转换为 第一个数据类型的等效树。
答案 0 :(得分:0)
你是对的,你需要遍历树,这可以通过使用模式匹配在SML中优雅地实现。您将需要输入树上的case,如果它是Empty,则只返回Empty。如果它是一个Node,那么您将希望递归转换左右子树并将这些结果放入另一个表示中。这不应该需要超过4行代码。