许多教程集中在二进制搜索树的实现上,并且搜索操作更容易。在某些应用程序或环境中,实现简单二进制树比BST更好吗?还是只是作为树木的入门概念而被教授?
答案 0 :(得分:1)
当您的结构需要一个父级和最多两个子级时,可以使用二进制树(而不是二进制搜索树)。例如,考虑一棵树来表示数学表达式。表达式(a+b)*c
变为:
*
/ \
+ c
/ \
a b
Paring heap是一种逻辑上为通用树的数据结构(即,对节点可以拥有的子代数没有限制),但是通常使用{{ 3}}。 LCRS二叉树通常比普通树更有效且更易于使用。
left-child right-sibling binary tree也是二叉树,但不是二叉搜索树。
旧的猜谜游戏是二叉树的另一个示例,在该游戏中,玩家回答一堆“是/否”问题以便得出答案。在下面的树中,左边的孩子是“否”答案,右边的孩子是“是”答案
Is it an animal?
/ \
Is it a plant? Is is a mammal?
/ \
A reptile? A dog?
您可以想象一棵任意深度的树,每个级别都有问题。
这些只是几个例子。我发现二进制树在许多不同的情况下都很有用。