用于在二叉树中搜索的伪代码

时间:2010-10-27 22:44:36

标签: binary-tree

我需要C ++的伪代码,它将搜索树以查找值为“z”的节点。

该函数将以树的根节点开头。 树具有每个节点最多具有两个子节点的属性。 每个节点都有3个属性:left child,right child和value。

1 个答案:

答案 0 :(得分:7)

以下伪代码将按升序执行树所需的操作。

def findval (node,lookfor):
    if node is null:
        return null
    if node.val is equal to lookfor:
        return node
    if node.val is less than lookfor
        return findval (node.right,lookfor)
    return findval (node.left,lookfor)

用以下方式调用:

znode = findval (root, "z")

它将为您提供节点,如果没有节点,则为null。

如果您想避免递归,可以使用迭代解决方案:

def findval (node,lookfor):
    while node is not null:
        if node.val is equal to lookfor:
            break
        if node.val is less than lookfor:
            node = node.right
        else:
            node = node.left
    return node

显然,您可以进行各种增强,例如允许不同的顺序,或回调比较功能,或允许重复键,但这是二叉树搜索的典型示例。