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


当前回答

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

红黑树 AVL树 替罪羊树

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

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

其他回答

二叉树用于霍夫曼编码,它被用作压缩码。 二叉树用于二叉搜索树,它有助于保持数据记录,不需要太多额外的空间。

你的程序语法,或者其他很多东西,比如自然语言,都可以用二叉树来解析(虽然不一定)。

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

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

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

java.util.Set的实现