我被要求实现数据结构。经过几次尝试,我遇到了麻烦,我想了解如何使用AVL和哈希表实现以下方法的想法:建议包含一个动态对象集的ADT,以便每个对象都有其唯一值(id),并支持以下内容:
初始化-初始化一个空结构-O(1)。
add(x)-将x插入结构-O(log(n))。
remove(x)-从结构中删除x- O(log(n))。
range(a,b)-假设a小于b,返回键范围为[a,b]-O(log(n)+ k)的对象数组,其中k是范围内的对象。
O(n)的空间复杂度,其中n是给定时间内ADT中对象的数量。您可以假定每个键都是唯一的,不能假定ADT中存在a或b。
skip list可以满足所有这些要求。