"SortedKeyStore" (数据结构)

"SortedKeyStore"

表示键和值的存储,按排序顺序保存键.

更多信息

  • 经排序键存储(sorted key store)通常用于存储键和值.
  • 经排序键存储中的键按排序顺序保存:
  • CreateDataStructure[ "SortedKeyStore"]新建一个空 "SortedKeyStore"
    Typed[x,"SortedKeyStore"]x 添加类型 "SortedKeyStore"
  • 对于 "SortedKeyStore" 类型的数据结构,可以使用以下运算:
  • ds["Copy"]返回 ds 的副本时间:O(n)
    ds["Elements"]返回 ds 的键值对列表时间:O(n)
    ds["EmptyQ"]ds 没有项,则为 True时间:O(1)
    ds["Insert",keyvalue]key 添加到 ds 中并加上关联 value,如果添加值改变了 ds,则返回 True时间:O(log n)
    ds["KeyDrop",key]ds 中删除 key 及其值时间:O(log n)
    ds["KeyDropAll"]ds 中删除所有键及其值时间:O(n)
    ds["KeyExistsQ",key]key 存在于 ds 中,则为 True时间:O(log n)
    ds["Keys"]以排序列表的形式返回 ds 中的键值时间:O(n)
    ds["KeyValueFold",fun,init]fun 应用于 ds 的规则,从 init 开始,累计结果时间:O(n)
    ds["KeyValueScan",fun]fun 应用于 ds 的规则时间:O(n)
    ds["Length"]存储在 ds 中的键值对的数量时间:O(1)
    ds["Lookup",key]返回 ds 中用 key 储存的值;若未找到该键,则返回 Missing 对象时间:O(log n)
    ds["Lookup",key,defFun]返回 ds 中用 key 储存的值;若未找到该键,则返回 defFun[key]时间:O(log n)
    ds["PeekFirst"]返回 ds 中的第一个键值对时间:O(1)
    ds["PeekLast"]返回 ds 中最后一个键值对时间:O(1)
    ds["PopFirst"]移除 ds 中的第一个键值对并返回时间:O(1)
    ds["PopLast"]移除 ds 中的第一个键值对并返回时间:O(1)
    ds["Values"]ds 中的值返回为按相应键排序的列表时间:O(n)
    ds["Visualization"]返回 ds 的可视化形式时间:O(n)
  • 还支持以下函数:
  • dsi===dsjdsi 等于 dsj,则为 True
    FullForm[ds]ds 的完整形式
    Information[ds]关于 ds 的信息
    InputForm[ds]ds 的输入形式
    Normal[ds]ds 转换为正则表达式
  • 可以使用以下选项创建 "SortedKeyStore" 类型的数据结构:
  • "SortDirection""Forward"是否以正向或反向模式对键进行排序

范例

打开所有单元关闭所有单元

基本范例  (1)

可用 CreateDataStructure 新建一个空 "SortedKeyStore"

将作为规则给出的键值对插入 "SortedKeyStore" 数据结构:

测试键是否存在:

可从存储中移除键:

现在键不在存储中:

插入多个键和值:

按排序返回键值:

返回值按键的顺序排列:

返回 ds 的表达式版本:

可生成数据结构的可视化:

范围  (3)

Information  (1)

可使用 CreateDataStructure 新建一个 "SortedKeyStore"

关于数据结构 ds 的信息:

Traversal  (1)

可以进行函数遍历. 按顺序对项进行遍历.

可用 CreateDataStructure 新建 "SortedKeyStore" 并插入元素:

可以访问每个键值对并应用函数:

可以访问每个键值对,并应用函数累计结果:

SortDirection  (1)

默认情况下,键按递增方向排序:

"SortDirection" 选项允许键按递减方向排序: