"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"

关于数据结构 ds 的信息:

巧妙范例  (2)

动画  (1)

EvaluationMonitor  (1)

显示最新事件的运算监视器: