データ構造の基本
スタック・キュー・配列・リスト・木構造の違いを、操作のイメージから整理します。
→ データ構造を開く
スタック
最後に入れたものを最初に取り出す、LIFO(Last In, First Out)の構造です。
キュー
最初に入れたものを最初に取り出す、FIFO(First In, First Out)の構造です。
配列
インデックスを使って各要素へアクセスします。多くの言語ではインデックス0から始まります。
リスト
各要素が次の要素への参照を持つ構造です。途中への挿入・削除で、リンクをつなぎ替える考え方が重要です。
木構造
親子関係を持つ階層構造です。最上位はroot、子を持たないノードはleafと呼ばれます。
二分探索木のinorder
中間順巡回(inorder)は、左部分木 → 根 → 右部分木の順にたどります。二分探索木では小さい順になります。
スタック → 後入れ先出し
キュー → 先入れ先出し
配列 → インデックス
リスト → つなぎ替え
木構造 → 親子関係
データ構造は操作とセットで覚える
データ構造ごとの名前だけでなく、「どこから追加し、どこから取り出すか」をイメージすると使い分けやすくなります。
具体例:スタックとキュー
キュー:A→B→Cの順に追加すると、取り出しもA→B→C(FIFO)
配列・リスト・木構造
配列は添字で要素へアクセスしやすい構造です。リストは要素同士のつながりを使って管理します。木構造は親子関係を持ち、階層的なデータを表現できます。
よくある間違い
スタックは「最後に入れたものから」、キューは「最初に入れたものから」です。実際にA・B・Cを書いて操作すると確認できます。
試験でのポイント
push・pop・enqueue・dequeueなどの操作が出たら、各操作後の中身を1行ずつ書いて追跡しましょう。
データ構造とは?
データ構造は、データを効率よく保存・検索・追加・削除するための持ち方です。配列、リスト、スタック、キュー、木構造などがあり、目的に応じて使い分けます。
スタックとは?LIFOとは?
スタックは、最後に入れたデータを最初に取り出すLIFO(Last In First Out)の構造です。A→B→Cの順で追加した場合、C→B→Aの順で取り出します。
キューとは?FIFOとは?
キューは、最初に入れたデータを最初に取り出すFIFO(First In First Out)の構造です。A→B→Cと追加すると、A→B→Cの順で取り出します。
スタックとキューの違い
違いは取り出す順番です。「最後に入れたものから」がスタック、「最初に入れたものから」がキューです。具体的なデータを書いて操作すると混同しにくくなります。
配列とリストの違い
配列は添字を使って要素へアクセスしやすい構造です。リストは要素同士のつながりを利用して管理します。試験では追加・削除・探索など、どの操作を重視するかを考えます。
操作後の状態を実際に答えて、データ構造の動きを身につけましょう。