[情報処理基礎学習]④データ構造

すげー使うのと、すげー使わないのと(今回羅列だけ)

データ構造

(1) 配列

要素は物理的に連続。

(2) リスト

連続リスト(片方向、双方向、環状など)。要素間はポインタで指示。

(3) スタック

LIFO。スタックトレースとかはこれか。

(4) キュー

FIFO。

(5) 木

階層構造

① 2分木

1つの節からの枝分かれ数が2以下(1または2)の木。

② 完全2分木

葉の最小と最大レベル差が1以内(0または1)の2分木。

③ 2分探索木

「左子の値<親の値<右子の値」を満たす2分木

④ ヒープ

「左子の値<右子の値」かつ「親の値>子の値(または親の値<この値)」を満たす2分木

(6) ハッシュ

キー値を配列の添え字にする方法。通常キー値はハッシュ値に変換する。
ハッシュ値が競合(衝突)した場合、以下のどちらかの方法で回避する。

① チェイン法

要素をリストで持ち、同一キー要素に値を複数格納できるようにする方法。

② オープンアドレス法

あらかじめ決めておいた方法(※1)で再度ハッシュ値を求める方法。
※1.「元のハッシュ値+1」など