Data structures 使用二进制搜索树的具体示例?
我了解二进制搜索树是如何实现的,但我不确定使用它比大多数编程语言在其标准库中内置的哈希表有什么好处Data structures 使用二进制搜索树的具体示例?,data-structures,tree,hashtable,binary-search-tree,Data Structures,Tree,Hashtable,Binary Search Tree,我了解二进制搜索树是如何实现的,但我不确定使用它比大多数编程语言在其标准库中内置的哈希表有什么好处 有人能提供用二叉搜索树解决现实问题的例子吗?一个需要二叉树的例子是计算机图形学中的二叉空间分区 由于算法需要保留二叉树中节点之间的关系,因此需要二叉树。还有许多其他算法,其中树的结构很重要,因此哈希表不是合适的结构 使用二叉树而不是哈希表的另一个很好的原因是,当您无法轻松为数据项生成有效的哈希,但可以生成比较函数时 通常,对于简单的数据存储和检索,哈希表更为优化,但实现起来更为复杂 最容易被忽视
有人能提供用二叉搜索树解决现实问题的例子吗?一个需要二叉树的例子是计算机图形学中的二叉空间分区 由于算法需要保留二叉树中节点之间的关系,因此需要二叉树。还有许多其他算法,其中树的结构很重要,因此哈希表不是合适的结构 使用二叉树而不是哈希表的另一个很好的原因是,当您无法轻松为数据项生成有效的哈希,但可以生成比较函数时
通常,对于简单的数据存储和检索,哈希表更为优化,但实现起来更为复杂 最容易被忽视的一点是,许多文件系统使用二叉树来管理目录列表。它们很少使用普通的二叉树,而是使用一些变体,如B-树。这是因为树的磁盘存储问题对于实现的细节非常重要。他们使用这种结构的原因是为了效率和速度。这让他们可以在一个目录中支持数千个文件。文件创建和删除时间的比较突出了文件系统这方面的效率
二叉树也用于许多渲染3D对象的游戏。同样,原因是速度。事实上,速度非常重要,一些游戏引擎(如地震引擎)实际上在地图构建过程中预先生成并优化了二叉树。需要注意的一点是,二叉搜索树是节省空间的。例如,你有10个整数要存储,你有一个从0到99映射的哈希函数,然后你需要一个100个整数的数组。
如果使用二元搜索树,则只能分配10个元素所需的内存。二元搜索树在理论上比哈希表有一些优势: