"HashSet" (データ構造)
"HashSet"
メンバが一般式であり,ハッシュ関数を使ってメンバシップが計算される集合を表す.
詳細
- ハッシュ集合は,効率的な挿入と削除だけでなく,メンバシップの検証にも役立つ.
-
CreateDataStructure["HashSet"] 新しい空の"HashSet"を作成する CreateDataStructure["HashSet",elems] elems を含む新しい"HashSet"を作成する Typed[x,"HashSet"] x に"HashSet"型を与える - "HashSet"型のデータ構造には,以下の演算が使える.
-
ds["Complement",list] list に現れる要素を ds から削除する time: O(n) ds["Copy"] ds のコピーを返す time: O(n) ds["Delete",x] x を ds から削除し,x が実際に要素である場合にTrueを返す time: O(1) ds["DeleteAll"] ds からすべての要素を削除する time: O(n) ds["Elements"] ds の要素のリストを返す time: O(n) ds["EmptyQ"] ds が要素を持たない場合はTrue time: O(1) ds["Insert",x] x を集合に加え,追加に成功した場合にはTrueを返す time: O(1) ds["Intersection",list] list に現れない要素を ds から削除する time: O(n) ds["Length"] ds に保存される要素の数を返す time: O(1) ds["MemberQ",x] x が ds のメンバである場合はTrue time: O(1) ds["Pop"] ds から要素を削除し,それを返す time: O(1) ds["SubsetQ",ds1] ハッシュ集合 ds1が ds の部分集合である場合にはTrueを返す time: O(n) ds["Union",list] list に現れる要素を ds に加える time: O(n) ds["Visualization"] ds の可視化を返す time: O(n) - 以下の関数もサポートする.
-
dsi===dsj dsi が dsj に等しい場合はTrue FullForm[ds] ds の完全形 Information[ds] ds についての情報 InputForm[ds] ds の入力形 Normal[ds] ds を通常の式に変換する
例題
すべて開くすべて閉じる例 (2)
新しい"HashSet"は,CreateDataStructureを使って作成できる:
式が保存されていない場合には,Falseが返される:
要素を集合から削除する.何かが実際に削除された場合には,Trueを返す:
スコープ (2)
情報 (1)
新しい"HashSet"は,CreateDataStructureを使って作成することができる:
集合の演算 (1)
"HashSet"は,中心的な集合の演算のいくつかをサポートする.新しい空の"HashSet"は,CreateDataStructureを使って作成することができる:
"Union"の演算は,もともとデータ構造になかった要素を加える: