Algorithm 搜索二叉树线性函数
我正在尝试做一个小程序,它需要一个搜索二叉树 为每个节点计算: 双功能Lu和Ru 其中Lu是左子树中以u为根的节点的键的总和 Ru是右子树的和。 程序应具有以下输出: 满足此属性的关键节点Lu*kAlgorithm 搜索二叉树线性函数,algorithm,Algorithm,我正在尝试做一个小程序,它需要一个搜索二叉树 为每个节点计算: 双功能Lu和Ru 其中Lu是左子树中以u为根的节点的键的总和 Ru是右子树的和。 程序应具有以下输出: 满足此属性的关键节点Lu*k
有人能帮我吗?基本上你需要计算子树中键的总和。这是一个众所周知的问题
func calc(node):
if node is null:
return 0
node.lval = calc(node.left) # L(u)
node.rval = calc(node.right) # R(u)
return node.key + node.lval + node.rval
其中,lval和rval首先初始化为0
现在你必须先走到树的左边,然后再走到树的右边,然后检查树的状况
func print(node):
if has left child:
print(node.left)
if node.lval*k < node.rval:
output node.key
if has right child:
print(node.right)
语言是什么?我不知道为什么这被否决了,因为它看起来非常正确。作为一个次要的观点,如果没有孩子,你不需要这个部分——它是多余的。@ami tavory谢谢,你是对的。固定的