"RingBuffer" (データ構造)

"RingBuffer"

要素が一般式であるリングバッファを表す.

詳細

  • リングバッファは,固定数の要素を効率的に保存するのに役立つ.
  • CreateDataStructure["RingBuffer",capacity]capacity 要素まで含むことが可能な新しい空の"RingBuffer"を作成する
    Typed[x,"RingBuffer"]x"RingBuffer"型を持つように指定する
  • "RingBuffer"型のデータ構造には,以下の演算が使える.
  • ds["Capacity"]ds に保存できる要素の最大数time: O(1)
    ds["Copy"]ds のコピーを返すtime: O(n)
    ds["DropAll"]ds からすべての要素を省くtime: O(n)
    ds["Elements"]ds の要素のリストを返すtime: O(n)
    ds["EmptyQ"]ds が要素を持たない場合はTruetime: O(1)
    ds["Fold",fun]funds の要素に適用し,結果を累積するtime: O(n)
    ds["Length"]ds に保存された要素の数time: O(1)
    ds["PeekBack"]ds の最後の要素time: O(1)
    ds["PeekFront"]ds の最初の要素time: O(1)
    ds["PopBack"]ds から最後の要素を削除するtime: O(1)
    ds["PopFront"]ds から最初の要素を削除するtime: O(1)
    ds["PushBack",x]xds の最後に加え,ds が満杯の場合には最初の要素を省くtime: O(1)
    ds["PushFront",x]xds の最初に加え,ds が満杯の場合には最後の要素を省くtime: O(1)
    ds["Visualization"]ds の可視化を返すtime: O(n)
  • 以下の関数もサポートする.
  • dsi===dsjdsidsj に等しい場合はTrueを返す
    FullForm[ds]ds の完全形を表示する
    Information[ds]ds についての情報を返す
    InputForm[ds]Wolfram言語への入力に適した ds のバージョンを表示する
    Normal[ds]ds を通常の式に変換する

例題

すべて開くすべて閉じる

  (3)

新しい"RingBuffer"は,CreateDataStructureを使って作成できる:

長さを返す:

サイズを返す:

要素を後ろに加える:

要素が保存された:

Normalは,要素とサイズを返す:

リングバッファを満杯にする:

もう一つの要素が後ろに加えられたとき,最初の要素が削除される:

全要素を合計する:

データ構造の可視化を生成することができる:

スコープ  (1)

情報  (1)

新しい"RingBuffer"は,CreateDataStructureを使って作成することができる:

データ構造 ds についての情報:

おもしろい例題  (2)

アニメーション  (1)

評価モニター  (1)

最新のイベントを示す評価モニター: