DATA STRUCTURE

データ構造の基本

スタック・キュー・配列・リスト・木構造の違いを、操作のイメージから整理します。

問題を解きたい方:
→ データ構造を開く

スタック

最後に入れたものを最初に取り出す、LIFO(Last In, First Out)の構造です。

PUSH 10 PUSH 20 PUSH 30 上 30 ← POPで最初に出る 20 10 下

キュー

最初に入れたものを最初に取り出す、FIFO(First In, First Out)の構造です。

enqueue 10 enqueue 20 enqueue 30 先頭 → 10, 20, 30 → 末尾 dequeueで10が出る

配列

インデックスを使って各要素へアクセスします。多くの言語ではインデックス0から始まります。

[5, 12, 18, 24] index 0 → 5 index 2 → 18

リスト

各要素が次の要素への参照を持つ構造です。途中への挿入・削除で、リンクをつなぎ替える考え方が重要です。

A → B → C → D Bの次にXを挿入 A → B → X → C → D

木構造

親子関係を持つ階層構造です。最上位はroot、子を持たないノードはleafと呼ばれます。

8 / \ 4 12 / \ / \ 2 6 10 14

二分探索木のinorder

中間順巡回(inorder)は、左部分木 → 根 → 右部分木の順にたどります。二分探索木では小さい順になります。

2 → 4 → 6 → 8 → 10 → 12 → 14
覚え方:
スタック → 後入れ先出し
キュー → 先入れ先出し
配列 → インデックス
リスト → つなぎ替え
木構造 → 親子関係

データ構造は操作とセットで覚える

データ構造ごとの名前だけでなく、「どこから追加し、どこから取り出すか」をイメージすると使い分けやすくなります。

具体例:スタックとキュー

スタック:A→B→Cの順に追加すると、取り出しはC→B→A(LIFO)
キュー: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の順で取り出します。

スタックとキューの違い

違いは取り出す順番です。「最後に入れたものから」がスタック、「最初に入れたものから」がキューです。具体的なデータを書いて操作すると混同しにくくなります。

配列とリストの違い

配列は添字を使って要素へアクセスしやすい構造です。リストは要素同士のつながりを利用して管理します。試験では追加・削除・探索など、どの操作を重視するかを考えます。

理解したら10問練習
操作後の状態を実際に答えて、データ構造の動きを身につけましょう。