二叉树的列表实现是否可扩展?

2024-04-05

我正在写一个简单的编解码器。该树将被预先计算,一旦构建就不会发生任何变化。它只会被搜索。

平衡二叉树的所有叶节点都是信号值,内部节点是近似压缩表示。

如果我有很大的叶节点值,使用 stl 矢量的列表实现是否可扩展? 目前我不知道有多大。

列出实现,例如1,2,3,4,5,6,7 如果我有 4 个叶节点

那么孩子们

root(1)-> 2,3
2->4,5
3->6,7

所以我可以简单地使用孩子们在向量中的位置跳到他们身上。


在这种情况下,使用“列表”或“数组”不会造成任何问题(因为树是不可变的)。 O(log n) 搜索的唯一要求是快速随机访问(即对给定索引的 O(1) 访问)。

您可以使用vector or a deque,两者都合适。您可能会遇到可扩展性问题vector如果系统找不到足够大的内存块来容纳所有元素,尽管开始应该更简单。如果您遇到此障碍,请切换到deque,虽然你可能会失去一些速度,但由于其碎片化的性质,它应该可以让你进一步成长。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二叉树的列表实现是否可扩展? 的相关文章