Sequential Symbol Tables
顺序符号表定义
顺序符号表是一种存储键值对(key-value pairs)的数据结构,支持按键的顺序进行高效的查找和操作, 键(Keys)必须是可比较的,且按照键的大小顺序进行组织。每个键都必须是唯一的。
API
主要操作有:
put(key, value)
:将键值对存入符号表中。get(key)
:根据键查找值。delete(key)
:根据键删除值。contains(key)
:判断符号表中是否包含指定键。isEmpty()
:判断符号表是否为空。size()
:获取符号表中键值对的数量。
有序性操作
min()
:获取最小的键。max()
:获取最大的键。floor(key)
:获取小于等于key的最大键。ceiling(key)
:获取大于等于key的最小键。select(k)
:获取排名为k的键。rank(key)
:获取键的排名。
范围查找
keys(lo, hi)
:获取键在lo和hi之间的所有键。keys()
:获取符号表中所有键的集合。
实现方式
- 二叉查找树
- 红黑树
- B树
- 跳表
- 有序数组
性能特征
- 查找操作的时间复杂度通常为O(logN)
- 插入和删除操作的时间复杂度也通常为O(logN)
- 顺序操作(如遍历)的效率较高
应用场景
- 数据库索引
- 编译器中的符号表
- 文件系统中的路径查找