Questions tagged «binary-tree»


3
二叉树前后遍历的有用性
这可能很幼稚,但是我想知道,它是所有遍历类型的二叉树(普通树,排序树和平衡树)的上下文: 深度优先预购 深度优先 深度优先后继 广度优先 预购和后购商品的实际用途是什么?我的意思是,是否存在某种类型和/或配置的二叉树,其中前顺序和/或后顺序遍历将比其他两个具有(某些)优势? AFAICS,二进制树的某些类型和配置对于顺序和广度优先的二进制树可能具有一定的优势: 对于平衡二叉树,与深度优先相比,任何深度优先遍历将使用较少的内存存储空间(例如,对于6或7个节点的平衡二叉树,高度为2,因此任何深度优先遍历将需要存储最大值为在任何给定时间有2个节点,而最后一级有3个或4个节点,因此广度优先遍历在某个点最多需要存储3个或4个节点。在这种情况下,使用有序遍历将占用最少的内存,并以其自然顺序访问节点。 对于不平衡的二叉树,如果它接近最坏情况的插入方案,则与深度优先遍历相比,广度优先遍历将减少占用的内存。因此,在这种情况下,广度优先提供了优势。顺序遍历又具有按其自然顺序访问值的优点。 但是,我无法想到在遍历前后都比其他两个更有利的情况。


3
二进制树在存储分层数据中是否有特定目的?它们的规范用法是什么?
我了解二叉树的结构以及如何遍历它们。但是,我正在努力实现它们在程序和编程中的实际用途,目的。当我想到分层数据的“现实生活”示例时,几乎可以肯定他们有两个以上的子级。例如,在家谱中,一位母亲可能经常有两个以上的孩子。 由于对数组和列表的处理速度更快,“二叉树”真的只对存储线性相关的数据有用吗?或者,它们在存储分层数据中是否有特定目的?如果是这样,那么二叉树的应用实例有哪些。一个节点最多有两个孩子的数据是什么?

2
是否可以通过使用二进制搜索树进行单独链接来加快哈希表的速度?
我想使用二进制搜索树实现哈希表,以减少从O(n)(使用链表)到O(log n)(使用BST)的单独链接过程中的搜索复杂性。可以这样做,如果可以,怎么办?如果解决方案是逐步实施的,则逻辑将更容易理解。 我想减少哈希表中的“搜索”时间(使用单独的链接进行构建),但同时我不想增加插入时间。对于我的项目,我无法更改哈希函数以减少冲突。但是由于可伸缩性,冲突正在发生。我试图找到一种解决方法,以便在发生冲突的情况下以某种方式使用最佳访问并插入时间...即管理事物的当前状态,而不是重构整个算法。如果没有成功,则必须进行重组。有什么想法吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.