我目前正在研究高级数据结构,并且遇到了一个名为Treap的奇怪数据结构。我理解Treap是什么,但我似乎无法在有效的用例场景中找到它的实用程序。
为什么要使用这样的数据结构以及最好使用哪种类型的问题/条件?
我发现自己更多地使用哈希映射,最小/最大堆,二进制搜索树或平衡二叉搜索树,但我不知道为什么要使用treap。
答案 0 :(得分:0)
它们更容易实现,更重要的是,如果您想对它们进行轻微修改或以某种方式更改它们,这将使它们更容易修改/维护。它们还允许集合操作Union / Intersect / Difference的高效并行版本,这是非常有价值的。将它们同时用作堆和二叉树并不是非常方便,除非您用于优先级的东西巧合地随机分布/置换。我想可能会出现一些方便的情况,但似乎不太可能。如此随机分布的东西通常更像是一个散列键,它通常不像有序数据那样有用。您是否经常按照SSN的顺序将人拉出来?我想这可能但不太可能。