【发布时间】:2017-10-31 03:18:38
【问题描述】:
我正在为一门课学习 OCaml,并被分配计算二叉树的镜像。我很困惑,甚至不知道如何开始......
type btree = Empty | Node of int * btree * btree
;;
let mirror : btree -> btree
= fun t -> (* Code *)
示例输入:
let tree1 = Node(1, Node(2, Node(3, Empty, Empty), Empty), Node(4, Empty, Empty))
;;
样本输出:
mirror tree1 = Node(1, Node(4, Empty, Empty), Node(2, Empty, Node(3, Empty, Empty)))
;;
【问题讨论】:
-
从简单的开始:镜像 Node(1,Empty, Empty) 的代码可能是什么?节点(1,节点(2,空,空),空)?然后概括(见下面Jin的答案)。发布您的试验 - 然后您将有更多机会获得帮助。
-
通常在 ML 中你会使用模式匹配,但有趣的是你(或你的导师)给出的样本类似于 s-expressions。
标签: ocaml binary-tree mirror