"FixedArray" (データ構造)

"FixedArray"

要素が一般式である固定長配列を表す.

詳細

  • 固定長配列は,要素の効率的な抽出と更新に役立つ.
  • CreateDataStructure[ "FixedArray",n] n 個の要素を持つ新しい空の"FixedArray"を作成する
    CreateDataStructure[ "FixedArray",x,n]長さ n の新しい"FixedArray"x に初期化して作成する
    CreateDataStructure[ "FixedArray",elems]elems を含む新しい"FixedArray"を作成する
    Typed[x,"FixedArray"]x"FixedArray"型を与える
  • "FixedArray"型のデータ構造には,以下の演算が使える.
  • ds["Copy"]ds のコピーを返すtime: O(n)
    ds["Elements"]ds の要素のリストを返すtime: O(n)
    ds["EmptyQ"]ds が要素を持たない場合はTruetime: O(1)
    ds["Fold",fun,init]funds の要素に適用する.init で始めて,結果を累積するtime: O(n)
    ds["Length"]ds に保存される要素の数time: O(1)
    ds["Part",i]dsi 番目の部分を返すtime: O(1)
    ds["SetPart",i,elem]dsi 番目の部分を更新するtime: O(1)
    ds["SwapPart",i,j]dsi 番目と j 番目の部分を交換するtime: O(1)
    ds["Visualization"]ds の可視化を返すtime: O(n)
  • 以下の関数もサポートする.
  • dsi===dsjdsidsj に等しい場合はTrue
    ds["Part",i]=valdsi 番目の要素を val に設定する
    FullForm[ds]ds の完全形
    Information[ds]ds についての情報
    InputForm[ds]ds の入力形
    Normal[ds]ds を通常の式に変換する

例題

すべて開くすべて閉じる

  (3)

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

長さを返す:

式バージョンの ds を返す.要素はNullに初期化される:

要素を変更する:

要素が更新された:

式バージョンの ds を返す:

要素は素早く更新できる:

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

全要素を合計する:

初期値を与えることができる:

スコープ  (1)

情報  (1)

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

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

特性と関係  (1)

"DynamicArray"  (1)

"DynamicArray"に使えるアルゴリズムの多くは,"FixedArray"にも使える.

考えられる問題  (2)

配列の要素の数は,正の整数として指定しなければならない:

存在しない配列の部分の設定を行うことはできない:

インタラクティブな例題  (1)

個々のプロットを計算してデータ構造に保存し,Manipulateを使ってインタラクティブにそれらを表示する:

おもしろい例題  (2)

フィボナッチ数列  (1)

フィボナッチ数列の最初の16個の要素を計算する:

最初の2つの要素を1に設定してから,残りの要素を計算する:

結果を表示する:

ヒストグラム  (1)

画像におけるさまざまな色の値のヒストグラムを計算する関数:

画像の画素について関数を実行する:

結果を表示する: