すげー使うのと、すげー使わないのと(今回羅列だけ)
データ構造
(1) 配列
要素は物理的に連続。
(2) リスト
連続リスト(片方向、双方向、環状など)。要素間はポインタで指示。
(3) スタック
LIFO。スタックトレースとかはこれか。
(4) キュー
FIFO。
(5) 木
階層構造
① 2分木
1つの節からの枝分かれ数が2以下(1または2)の木。
② 完全2分木
葉の最小と最大レベル差が1以内(0または1)の2分木。
③ 2分探索木
「左子の値<親の値<右子の値」を満たす2分木
④ ヒープ
「左子の値<右子の値」かつ「親の値>子の値(または親の値<この値)」を満たす2分木
(6) ハッシュ
キー値を配列の添え字にする方法。通常キー値はハッシュ値に変換する。
ハッシュ値が競合(衝突)した場合、以下のどちらかの方法で回避する。
① チェイン法
要素をリストで持ち、同一キー要素に値を複数格納できるようにする方法。
② オープンアドレス法
あらかじめ決めておいた方法(※1)で再度ハッシュ値を求める方法。
※1.「元のハッシュ値+1」など