Algorithm 搜索二叉树线性函数

Algorithm 搜索二叉树线性函数,algorithm,Algorithm,我正在尝试做一个小程序,它需要一个搜索二叉树 为每个节点计算: 双功能Lu和Ru 其中Lu是左子树中以u为根的节点的键的总和 Ru是右子树的和。 程序应具有以下输出: 满足此属性的关键节点Lu*k

我正在尝试做一个小程序,它需要一个搜索二叉树

为每个节点计算:

双功能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谢谢,你是对的。固定的