Tree Ocaml-根据从左到深的原则打印灌木(如树)中树枝的长度

Tree Ocaml-根据从左到深的原则打印灌木(如树)中树枝的长度,tree,ocaml,Tree,Ocaml,我有一个Ocaml示例,我正在处理这个示例。我需要根据从左到深的原则显示某种树中所有树枝的长度。如果我们有这棵树: 4 2 6 1 3 5 7 我想显示树上所有树枝的长度。你有什么想法吗 我们有衬套类型,其定义如下: # type 'a bush = Null | One of 'a * 'a bush | Two of 'a bush * 'a * 'a bush;; 编写一个函数“brancheslength”’a bush->unit

我有一个Ocaml示例,我正在处理这个示例。我需要根据从左到深的原则显示某种树中所有树枝的长度。如果我们有这棵树:

     4

  2     6

1  3  5  7
我想显示树上所有树枝的长度。你有什么想法吗

我们有衬套类型,其定义如下:

# type 'a bush = 
   Null
   | One of 'a * 'a bush
   | Two of 'a bush * 'a * 'a bush;;

编写一个函数“brancheslength”’a bush->unit,它根据从左到深的原则显示一个bush分支的长度

根据您对分支长度的定义,您可以通过以下方式递归遍历树:

let rec branches_length bush depth = match bush with
| Null -> [depth]
| One (a, b) -> (branches_length b (depth + 1))
| Two (a, b, c) -> (branches_length a (depth + 1))@(branches_length c (depth + 1))

树枝长度的定义是什么?你是说灌木中的树枝总数吗?或者单个节点之间的距离?(例如,在节点1和节点2之间)。我们通常也希望看到更好地解释这个问题产生的任何误解概念的尝试。我认为(因为我没有详细的说明),我们正在寻找所有分支。在我们的例子中,我们有4个分支,它们的长度都是3。然后我们可以把它放在列表中,像这样:[3;3;3;3]。这就是我们需要的。