"DynamicArray" (データ構造)
"DynamicArray"
要素が一般式である拡張可能配列を表す.
詳細
- 拡張可能配列は,連続的に要素を加えるためだけでなく,要素を効率的に抽出および更新するために役立つ.
-
CreateDataStructure[ "DynamicArray"] 新しい空の"DynamicArray"を作成する CreateDataStructure[ "DynamicArray",elems] elems を含む新しい"DynamicArray"を作成する Typed[x,"DynamicArray"] x に"DynamicArray"型を与える - "DynamicArray"型のデータ構造には,以下の演算が使える.
-
ds["Append",x] x を ds に加える time: O(1) ds["Copy"] ds のコピーを返す time: O(n) ds["Drop",i] ds の i 番目の部分を省く time: O(n) ds["DropAll"] ds からすべての要素を省く time: O(n) ds["DropLast"] ds の最後の要素を省く time: O(1) ds["Elements"] ds の要素のリストを返す time: O(n) ds["EmptyQ"] ds が要素を持たない場合はTrue time: O(1) ds["Fold",fun,init] fun を ds の要素に適用する.init で始めて,結果を累積する time: O(n) ds["Insert",x,i ] x を ds の位置 i に挿入する time: O(1) ds["JoinBack",elems ] elems を ds の後ろに繋げる time: O(nelems) ds["Length"] ds に保存される要素の数 time: O(1) ds["Part",i] ds の i 番目の部分を返す time: O(1) ds["SetPart",i,elem] ds の i 番目の部分を更新する time: O(1) ds["SwapPart",i,j] ds の i 番目と j 番目の部分を交換する time: O(1) ds["Visualization"] ds の可視化を返す time: O(n) - 以下の関数もサポートする.
-
dsi===dsj dsi が dsj に等しい場合はTrue ds["Part",i]=val ds の i 番目の要素を val に設定する FullForm[ds] ds の完全形 Information[ds] ds についての情報 InputForm[ds] ds の入力形 Normal[ds] ds を通常の式に変換する
例題
すべて開くすべて閉じる例 (2)
新しい"DynamicArray"は,CreateDataStructureを使って作成できる:
スコープ (1)
情報 (1)
新しい"DynamicArray"は,CreateDataStructureを使って作成することができる:
アプリケーション (11)
バブルソート (1)
挿入ソート (1)
クイックソート (1)
マージソート (1)
クイックセレクト (1)
特性と関係 (1)
"FixedArray" (1)
"DynamicArray"に使えるアルゴリズムの多くは,"FixedArray"にも使える.