我想知道二叉树的具体应用是什么。你能举几个例子吗?


当前回答

在c++ STL中,以及许多其他语言的标准库中,如Java和c#。二叉搜索树用于实现set和map。

其他回答

主要应用是二叉搜索树。这是一种数据结构,其中搜索、插入和删除都非常快(大约log(n)次操作)

在c++ STL中,以及许多其他语言的标准库中,如Java和c#。二叉搜索树用于实现set和map。

使用二叉树表示AST的编译器可以使用已知的算法 解析树像海报,有序。程序员不需要提出自己的算法。 因为源文件的二叉树比n元树高,所以构建它需要更多的时间。 以这个生产为例: selstmnt:= "if" "(" expr ")" stmnt "ELSE" stmnt 在二叉树中,它将有3层节点,但n-ary树将有1层(子节点)

这就是为什么基于Unix的操作系统很慢的原因。

二叉树最重要的应用之一是平衡二叉搜索树,比如:

红黑树 AVL树 替罪羊树

这些类型的树具有这样的特性,即通过每次插入或删除节点时进行旋转等操作,将左子树和右子树的高度差保持在较小的范围内。

因此,树的整体高度保持为log n的阶数,并且搜索、插入和删除节点等操作在O(log n)时间内执行。c++的STL也以集合和映射的形式实现了这些树。

最常见的应用之一是高效地以排序形式存储数据,以便快速访问和搜索存储的元素。例如,std::map或std::set在c++标准库中。

二叉树作为一种数据结构,对于表达式解析器和表达式求解器的各种实现非常有用。

它也可以用来解决一些数据库问题,例如,索引。

一般来说,二叉树是一种特定的基于树的数据结构的一般概念,各种特定类型的二叉树可以构造成具有不同性质的二叉树。