【发布时间】:2015-06-27 12:22:03
【问题描述】:
我想实现一个数据结构,它能够在每次插入后快速插入并保持数据排序,没有重复。
我考虑过二项式堆,但我对这种结构的理解是,在插入过程中它无法判断特定元素是否还在堆中。另一方面,有 AVL 树,它非常适合我的情况,但老实说,当时对我来说实施起来太难了。
所以我的问题是:是否有可能编辑二项式堆插入算法以跳过重复项?也许有人可以建议另一种结构?
问候 :)
【问题讨论】:
-
有多少元素?如果元素的数量不是很大,我会先尝试一个数组。其出色的缓存位置属性使其成为一个不错的默认选择。
-
元素的数量可能很大,所以数组不是很好的选择。
-
虽然
insertion和without duplicates确实限制了建议自己的选择,但我建议明确编译要支持的操作列表,包括对资源消耗的要求。 (remove, min, nth(根据订单),average, count...呢?)
标签: c algorithm data-structures binomial-heap