[プロ技]よく使われる代表的データ構造

woody_1227 オーナー 公式アカウント

これを完璧にしておけば赤点回避!
(隠してある部分があまりにも多いので減らす予定です)
ログインすると、チェック機能を利用できるようになります。
スタック(stack)
入れ、 出し( )のデータ構造
に格納したデータは、必ず に取り出される

データの到着順とは、 に処理したい場面で用いる

<用途>







キュー(queue)
入れ、 出し( )のデータ構造
に格納したデータは、必ず に取り出される

データの に処理したい場面で用いる

<用途>

 ( )

 ( )

 ( )

 ( )


連結リスト(linked list)
を持つデータを作るデータ構造
の持たせ方で様々な種類がある

リスト
リスト
リスト

<用途>
リストは非常に柔軟なデータ構造で、様々な場面で用いられる。


( )


木構造(tree)
間の を表すデータ構造
・データは に格納
を持つデータを で連結する
・ノードの共有は

木構造は の利点を合わせ持つ
:探索は (ランダムデータ… 探索 O( ), ソート済みデータ… 探索 O( ))
   データの挿入・削除は (ソート済みのデータの削除…データの が必要)
:探索は (データの状態によらず、可能なのは 探索のみ O( ))
    データの挿入・削除は (データの は連結先を繋ぎ替えるだけで、データの移動は )

<二分探索木>
・全てのノードについて、 左の子ノードの値 < 右の子ノードの値 の関係が成り立っている(定義は逆でも可)
・探索:木がバランスしていれば(平衡木)、必ず 分の比較回数で目的のノードが見つかる。ノード数がnなら、O( )
・追加・削除: と同様、 のみ

<用途>
のデータを保存し、 に検索・更新・追加・削除を行う場面


( )
と同じ用途( は木の部分集合)
(文法構造は木で表現される( ))

グラフ(graph)
ノードの共有を 、ノード間の 関係を表すデータ構造
関係に、 を持たせることもある
はグラフの →グラフの特殊形

<用途>

( 等を使った )
( )

ハッシュテーブル
の集合を、インデックス(索引)で管理するデータ構造
データ操作(検索・追加・更新・削除は、 (O( ))で可能

<用途>

( )

…C++言語の

ルックアップテーブル(look up table)
処理において、 を保存しておき、保存されている計算結果を高速に検索することができるデータ構造
検索には、 等を使う。目的の値が存在しないときは、補完を行い、近似値を得る。

画像処理にも使用可能で、カラーとグレースケールの相互変換の際に、ピクセルごとの計算を全画素に適用すると、時間がかかるため、カラーとグレースケールに対応する値をルックアップテーブルにしておくことがある。