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)
  • 顺序操作(如遍历)的效率较高

应用场景

  • 数据库索引
  • 编译器中的符号表
  • 文件系统中的路径查找