表 5-1 列出了跳跃表的所有操作 API 。
函数 | 作用 | 时间复杂度 |
---|---|---|
zslCreate | 创建一个新的跳跃表。 | |
zslFree | 释放给定跳跃表,以及表中包含的所有节点。 | , N 为跳跃表的长度。 |
zslInsert | 将包含给定成员和分值的新节点添加到跳跃表中。 | 平均 ,最坏 , N 为跳跃表长度。 |
zslDelete | 删除跳跃表中包含给定成员和分值的节点。 | 平均 ,最坏 , N 为跳跃表长度。 |
zslGetRank | 返回包含给定成员和分值的节点在跳跃表中的排位。 | 平均 ,最坏 , N 为跳跃表长度。 |
zslGetElementByRank | 返回跳跃表在给定排位上的节点。 | 平均 ,最坏 , N 为跳跃表长度。 |
zslIsInRange | 给定一个分值范围(range), 比如 0 到 15 , 20 到 28 ,诸如此类, 如果给定的分值范围包含在跳跃表的分值范围之内, 那么返回 1 ,否则返回 0 。 | 通过跳跃表的表头节点和表尾节点, 这个检测可以用 复杂度完成。 |
zslFirstInRange | 给定一个分值范围, 返回跳跃表中第一个符合这个范围的节点。 | 平均 ,最坏 。 N 为跳跃表长度。 |
zslLastInRange | 给定一个分值范围, 返回跳跃表中最后一个符合这个范围的节点。 | 平均 ,最坏 。 N 为跳跃表长度。 |
zslDeleteRangeByScore | 给定一个分值范围, 删除跳跃表中所有在这个范围之内的节点。 | , N 为被删除节点数量。 |
zslDeleteRangeByRank | 给定一个排位范围, 删除跳跃表中所有在这个范围之内的节点。 | , N 为被删除节点数量。 |
|
内容来源于网络,如有侵权,请联系作者删除!