【发布时间】:2011-07-24 16:26:20
【问题描述】:
我发现了这个问题,我不太确定我的方法是否正确:
"二叉树可以使用编码 两个函数 l 和 r 使得对于 a 节点 n,l(n) 给出左子节点 n(如果没有,则为 nil)和 r(n) 给出正确的孩子(如果有,则为 nil 是无)。让 Test(l,r,x) 是一个简单的 递归算法 由 l 和 r 编码的二叉树 与根节点一起工作 x 表示二叉树,并返回 “是”,如果树中没有节点 正好一个孩子。给出伪代码 对于这个算法。”
我试过这个:
test(l,r,x)
if((l(x)!=null && r(x)!=null) || (l(x)==null && r(x)==null))
return "yes"
else return "no"
if(test(l,r,l(x))=="yes") test (l,r,l(x)) else return "no"
if(test(l,r,r(x))=="yes") test (l,r,r(x)) else return "no"
return "yes"
正确吗?如果 l 和 r 是函数,为什么在调用函数时它们作为普通参数传递?
提前感谢您的回答!
【问题讨论】:
-
是什么让您认为函数不能被视为“普通参数”?那有什么问题?你的问题似乎暗示了类似的东西。
-
@AndreyT 取决于 OP 的背景,他可能不知道某些语言允许该功能。
-
无论如何,据我估计,他似乎真正理解了它们像普通参数一样被很好地传递的概念。
标签: algorithm recursion binary-tree pseudocode