有人能举例说明二叉树和二叉搜索树的区别吗?


当前回答

在二叉搜索树中,所有节点都按照特定的顺序排列——根节点左侧的节点的值小于根节点,节点右侧的所有节点的值大于根节点的值。

其他回答

二叉搜索树:当对二叉树进行序遍历时,您将得到插入项的排序值 二叉树:在任何遍历中都没有找到排序的顺序

二叉树:每个节点最多有两个叶的树

  1
 / \
2   3

二叉搜索树:用于搜索。二叉树,其中左子节点只包含值小于父节点的节点,而右子节点只包含值大于或等于父节点的节点。

  2
 / \
1   3

当且仅当任意节点的最大子节点数为2时,树可以被称为二叉树。

当且仅当任意节点的最大子节点数为2且左子节点总是小于右子节点时,树可以被称为二叉搜索树。

要检查给定的二叉树是否是二叉搜索树,这里有一个替代方法。

按顺序遍历树(即左子->父->右子), 在临时变量中存储遍历的节点数据,比如temp,在存储到temp之前,检查当前节点的数据是否高于前一个。 然后把它打破,树不是二叉搜索树,否则遍历直到结束。

下面是一个Java的例子:

public static boolean isBinarySearchTree(Tree root)
{
    if(root==null)
        return false;

    isBinarySearchTree(root.left);
    if(tree.data<temp)
        return false;
    else
        temp=tree.data;
    isBinarySearchTree(root.right);
    return true;
}

保持室外温度变量

二叉树是一种子树的数目永远不超过两个。二叉搜索树遵循一个不变式,即左子节点的值应该小于根节点的键,而右子节点的值应该大于根节点的键。