最終更新日:2026年7月28日
fe fe-technology data-structure algorithm
まず結論
配列とは、同じ種類のデータを連続して並べ、添字で要素を指定するデータ構造です。
基本情報技術者試験では、次の切り分けが重要です。
添字で要素を指定する
→ 配列
データ部とポインタ部でつなぐ
→ 連結リスト
特に大切なのは、要素と添字を区別することです。
直感的な説明
配列は、番号付きの箱が横に並んでいるものと考えると分かりやすいです。
例えば、点数を3人分保存するとします。
score[0] = 80
score[1] = 65
score[2] = 90
このとき、score が配列の名前です。
score[0] や score[1] が、それぞれの箱を表します。
箱の中に入っている 80 や 65 がデータです。
つまり、配列では「何番目の箱を見るか」を指定して、必要なデータを取り出します。
定義・仕組み
配列は、複数の同じデータ型の値を、一つの名前でまとめて扱うデータ構造です。
配列でよく使う言葉は次のとおりです。
| 用語 | 意味 |
|---|---|
| 配列 | 複数のデータを順番に並べたもの |
| 要素 | 配列の中に入っている一つ一つのデータ |
| 添字 | どの要素かを指定する番号 |
| 配列名 | 配列全体につけた名前 |
例えば、次のような配列があるとします。
a[0] = 10
a[1] = 20
a[2] = 30
この場合、a[1] の値は 20 です。
ここで注意したいのは、添字が 0 から始まる場合と、1 から始まる場合があることです。
FEの擬似言語では、問題文の説明に従うことが大切です。
自分が普段使っているプログラミング言語の感覚だけで決めないようにします。
連結リストとの違い
| 比較項目 | 配列 | 連結リスト |
|---|---|---|
| 要素の配置 | 連続して並ぶ | ポインタでつながる |
| 要素の指定 | 添字 | 先頭から参照をたどる |
| 途中への挿入・削除 | 要素の移動が必要になることがある | ポインタの付け替えで対応しやすい |
| 各要素の構造 | 主にデータ本体 | データ部とポインタ部 |
配列は、基本情報技術者試験の「アルゴリズムとプログラミング」や「データ構造」と関係が深いテーマです。公式の出題範囲は、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、配列はデータ構造やアルゴリズムの基本として出題されます。
見るべきポイントは次のとおりです。
- 同じ種類のデータを連続して並べる
- 添字で要素を指定する
- 繰返し処理と組み合わせて使われやすい
- 途中への挿入・削除では、要素の移動が必要になることがある
例えば、次のような説明は配列の説明として自然です。
同じ種類のデータを連続的に並べ、添字によって各要素を参照する。
一方、次の説明は配列ではなく連結リストです。
ポインタの付け替えだけでデータを挿入・削除する。
また、配列は「必ず並べ替え済みのデータ」ではありません。
並び順を持つことと、値が大小順に整列されていることは別です。
ここは、二分探索などと混同しやすいポイントです。
二分探索では、対象の配列が整列済みであることが前提になります。
しかし、配列そのものは、整列されていなくても配列です。
科目Bでどう使う?
科目Bでは、配列はかなり重要です。
特に、擬似言語の問題では、配列の値を一つずつ見ていく処理がよく出ます。
例えば、次のような形です。
for i = 0 から 2 まで
合計 = 合計 + a[i]
この処理では、i の値が変わるたびに、見る要素が変わります。
i = 0 のとき a[0]
i = 1 のとき a[1]
i = 2 のとき a[2]
このように、科目Bでは 変数の値が変わると、参照する配列要素も変わる ことを追う必要があります。
読むときは、次の順で確認すると整理しやすいです。
- 配列名を確認する
- 添字に使われている変数を確認する
- 繰返しごとに、その変数がどう変わるかを見る
- 実際に参照される要素を書き出す
特に、i + 1 や i - 1 が出てきたら注意です。
a[i]
a[i + 1]
a[i - 1]
これらは、すべて違う要素を指します。
科目Bでは、頭の中だけで処理を追うより、表にして書き出すとミスが減ります。
よくある誤解・混同
誤解1:添字と値は同じ
添字は場所を指定する番号で、値そのものではありません。
例えば、次の配列を考えます。
a[0] = 5
a[1] = 8
a[2] = 3
このとき、a[1] の値は 8 です。
添字の 1 は、値そのものではありません。
| 見ているもの | 意味 |
|---|---|
1 |
添字 |
a[1] |
配列の1番の要素 |
8 |
その要素に入っている値 |
誤解2:配列と連結リストは同じ
同じではありません。
添字で直接指定する
→ 配列
ポインタをたどる
→ 連結リスト
誤解3:配列はポインタの付け替えだけで挿入・削除できる
これは連結リストの説明です。
配列の途中に新しい要素を入れる場合は、後ろの要素をずらす必要があることがあります。
誤解4:配列は常に整列済み
配列は、値が大小順に並んでいなくても配列です。
二分探索を使う場合に、整列済みであることが条件になります。
まとめ(試験直前用)
- 配列は、同じ種類のデータを連続して並べる構造
- 要素は中身、添字は場所を指定する番号
- 添字で直接指定するなら配列、ポインタをたどるなら連結リスト
- ポインタの付け替えだけで挿入・削除するのは連結リスト
- 科目Bでは、添字に使われる変数の変化を追う
- 配列は、整列済みとは限らない