让我们在ocaml中定义一个类型树。OCaml - 遍历树
type 'a tree =
T of 'a * 'a list;;
我想在两个方面遍历该图:从叶(1)从根到叶(2)以root
你能帮助我吗?
让我们在ocaml中定义一个类型树。OCaml - 遍历树
type 'a tree =
T of 'a * 'a list;;
我想在两个方面遍历该图:从叶(1)从根到叶(2)以root
你能帮助我吗?
type 'a tree = T of 'a * 'a tree list
let rec walk_downwards f = function
| T (elt, children) ->
f elt;
List.iter (walk_downwards f) children
let rec walk_upwards f = function
| T (elt, children) ->
List.iter (walk_upwards f) children;
f elt
我认为这是无法解决的解决方案,因为元组的2ns元素是_tree_而不是_list_ – Kakadu
是的,从原始版本复制它,但没有足够小心 - 修复。 – gsg
它如何工作?也许你可以使用fold_left向我展示遍历树? – user2900510
我认为你应该用''树目录'来代替''list'',因为现在写的东西根本不是树。 – Kakadu
你应该自己做家庭作业,而不是将它们发布到计算器上。 – Thomash