"RingBuffer" (数据结构)
"RingBuffer"
表示一个环形缓冲区,其中的元素为普通表达式.
更多信息
- 环形缓冲区可高效存储固定数量的元素:
-
CreateDataStructure["RingBuffer",capacity] 创建可存储 capacity 个元素的新的空 "RingBuffer" Typed[x,"RingBuffer"] 指定 x 的类型为 "RingBuffer" - 对于类型为 "RingBuffer" 的数据结构,可进行以下操作:
-
ds["Capacity"] ds 中最多可以存储多少个元素 时间:O(1) ds["Copy"] 返回 ds 的副本 时间:O(n) ds["DropAll"] 删除 ds 中所有的元素 时间:O(n) ds["Elements"] 返回 ds 的元素列表 时间:O(n) ds["EmptyQ"] 如果 ds 中没有任何元素则返回 True 时间:O(1) ds["Fold",fun,init] 将 fun 应用于 ds 的以 init 开始的元素,并累计结果 时间:O(n) ds["Length"] 存储在 ds 中的元素的数量 时间:O(1) ds["PeekBack"] ds 中最后一个元素 时间:O(1) ds["PeekFront"] ds 中第一个元素 时间:O(1) ds["PopBack"] 删除 ds 的最后一个元素 时间:O(1) ds["PopFront"] 删除 ds 的第一个元素 时间:O(1) ds["PushBack",x] 将 x 添加到 ds 的末尾,如果 ds 已满,则删除第一个元素 时间:O(1) ds["PushFront",x] 将 x 添加到 ds 的开头,如果 ds 已满,则删除最后一个元素 时间:O(1) ds["Visualization"] 返回 ds 的可视化 时间:O(n) - 还支持以下函数:
-
dsi===dsj 如果 dsi 等于 dsj 则给出 True FullForm[ds] 显示 ds 的完全形式 Information[ds] 给出关于 ds 的信息 InputForm[ds] 显示适合于 Wolfram 语言输入的 ds 的形式 Normal[ds] 将 ds 转换成普通表达式
范例
打开所有单元关闭所有单元基本范例 (3)
可用 CreateDataStructure 创建新的 "RingBuffer":
Normal 返回元素及大小:
范围 (1)
信息 (1)
可用 CreateDataStructure 创建新的 "RingBuffer":