可以使用两个函数对二叉树进行编码l
,r
对于 a node n
,l(n)
给出 的左孩子n
,r(n)
给出 的右孩子n
。
树的分支是从根到叶子的路径,分支到特定叶子的长度是从根到该叶子的路径上的弧数。
让MinBranch(l,r,x)
是一个简单的递归算法,用于获取由 l 和 r 函数编码的二叉树以及二叉树的根节点 x,并返回二叉树最短分支的长度。
给出这个算法的伪代码。
好的,所以基本上这就是我到目前为止想出的:
MinBranch(l, r, x)
{
if x is None return 0
left_one = MinBranch(l, r, l(x))
right_one = MinBranch(l, r, r(x))
return {min (left_one),(right_one)}
}
显然这不是很好或完美的。如果人们能帮助我完成这个完美的工作,我会很感激 - 任何帮助都将不胜感激。