2026年版・1-6

データ構造の一問一答

基本情報技術者試験 科目A「基礎理論」から、データ構造に関する4択問題を10問。「答えと解説を見る」を開くと、正解とその理由がその場で読めます。会員登録は不要です。

この分野の演習

全10問/解説つき・基本無料

アプリ形式で解く(全600問) 基礎理論の要点解説を読む
問題

上から順に解いてみてください。答えは各問の下で確認できます。科目Aの本試験と同じく、4択で出題しています。

問11-6

空のスタックに対して、A、B、Cの順にデータを格納(push)した。その後、データを1つ取り出し(pop)、Dを格納し、さらにデータを2つ取り出した。取り出されたデータの順序として正しいものはどれか。

  • ①C、D、B
  • ②A、B、D
  • ③C、B、A
  • ④D、C、B
答えと解説を見る
正解 ①C、D、B
解説
スタックは、最後に格納したデータを最初に取り出す後入れ先出し(LIFO:Last In First Out)のデータ構造です。操作を順に追います。
A、B、Cを格納 → 中身は下からA、B、C
1つ取り出す → C(残りはA、B)
Dを格納 → 下からA、B、D
2つ取り出す → D、次にB(残りはA)
したがって、取り出された順序は C、D、B です。

他の選択肢が不適切な理由
・A、B、D:先に格納したものから取り出すキュー(FIFO)として扱った場合に近い誤りです。
・C、B、A:Dの格納を無視して取り出した誤りです。
・D、C、B:操作の順序を取り違え、A、B、C、Dを全て格納してから3つ取り出した場合の結果です。1つ目の取出しはDを格納する前に行います。

覚え方のポイント
「スタック=積み重ねた皿(上から取る)」。関数の呼出しの管理や、逆ポーランド記法の計算などに使われます。
問21-6

空のキューに対して、A、B、Cの順にデータを格納した。その後、データを1つ取り出し、Dを格納し、さらにデータを2つ取り出した。取り出されたデータの順序として正しいものはどれか。

  • ①C、B、A
  • ②C、D、B
  • ③A、D、B
  • ④A、B、C
答えと解説を見る
正解 ④A、B、C
解説
キューは、最初に格納したデータを最初に取り出す先入れ先出し(FIFO:First In First Out)のデータ構造です。操作を順に追います。
A、B、Cを格納 → 先頭からA、B、C
1つ取り出す → A(残りはB、C)
Dを格納 → 先頭からB、C、D
2つ取り出す → B、次にC(残りはD)
したがって、取り出された順序は A、B、C です。

他の選択肢が不適切な理由
・C、D、B:後に格納したものから取り出すスタック(LIFO)として扱った場合の結果です。
・A、D、B:後から格納したDが先に出るとした誤りです。
・C、B、A:格納した順序と逆に取り出した誤りです。

覚え方のポイント
「キュー=レジの行列(先に並んだ人から)」。プリンタの印刷待ちや、待ち行列の処理に使われます。スタックと同じ操作の問題で、結果がどう変わるかを比べて練習しましょう。
問31-6

連結リスト(リスト構造)の特徴として、最も適切なものはどれか。

  • ①先頭の要素しか参照できず、途中の要素は取り出せない
  • ②添字を指定すれば、どの要素にも一定時間で直接アクセスできる
  • ③要素は必ず、主記憶上の連続した領域に並べて格納される
  • ④要素の挿入や削除が、ポインタの付け替えだけで行える
答えと解説を見る
正解 ④要素の挿入や削除が、ポインタの付け替えだけで行える
解説
連結リストは、各要素が「データ」と「次の要素の位置(ポインタ)」を持ち、ポインタでつながったデータ構造です。要素を挿入・削除するときは、前後の要素のポインタを付け替えるだけでよく、他の要素を移動させる必要がありません。その代わり、途中の要素を参照するには先頭から順にたどる必要があります。

他の選択肢が不適切な理由
・添字でどの要素にも一定時間で直接アクセス:配列の特徴です。
・主記憶上の連続した領域に並べて格納:これも配列の特徴です。リストの要素は離れた場所にあってもポインタでつながります。
・先頭の要素しか参照できない:先頭からたどれば途中の要素も参照できます。

覚え方のポイント
「配列=参照が速い、挿入・削除が遅い」「リスト=挿入・削除が速い、参照が遅い」。この長所と短所の裏返しの関係が頻出です。
問41-6

2分探索木の性質として、最も適切なものはどれか。

  • ①全ての葉が同じ深さにあり、どの節点も必ず2つずつの子を持っている
  • ②各節点の値は、その子の節点の値よりも常に小さいか等しくなる
  • ③左の部分木の値は節点より小さく、右の部分木の値は節点より大きい
  • ④節点の値が、根から葉に向かって必ず大きい順に並んでいる
答えと解説を見る
正解 ③左の部分木の値は節点より小さく、右の部分木の値は節点より大きい
解説
2分探索木は、どの節点についても「左の部分木にある値はすべてその節点より小さく、右の部分木にある値はすべてその節点より大きい」という性質を持つ2分木です。探索するときは、根から始めて、探す値が節点より小さければ左、大きければ右へ進むので、効率よく探索できます。中間順(通りがけ順)でたどると、値が小さい順に取り出せます。

他の選択肢が不適切な理由
・節点の値は子の値より常に小さいか等しい:ヒープ(最小ヒープ)の性質です。
・全ての葉が同じ深さで、節点は必ず2つの子を持つ:完全な2分木(満2分木)の形の説明で、値の大小の性質ではありません。
・根から葉に向かって大きい順に並ぶ:最大ヒープの性質に近い説明です。

覚え方のポイント
「2分探索木=左は小さく、右は大きい」「ヒープ=親と子の大小関係だけ(兄弟の大小は決まらない)」と区別しましょう。
問51-6

最小ヒープ(どの節点の値も、その子の節点の値以下であるように構成した2分木)の説明として、最も適切なものはどれか。

  • ①葉の節点に、全体の中で最小の値が格納されている
  • ②根の節点に、全体の中で最小の値が格納されている
  • ③左の子の値は、必ず右の子の値よりも小さい
  • ④中間順にたどると、値を小さい順に取り出せる
答えと解説を見る
正解 ②根の節点に、全体の中で最小の値が格納されている
解説
最小ヒープでは、どの親も子以下の値を持つため、根(一番上の節点)に全体の最小値が格納されます。最小値をすぐに取り出せるため、優先度付きの待ち行列(プライオリティキュー)や、ヒープソートに利用されます。

他の選択肢が不適切な理由
・葉に最小の値:最小ヒープでは、最小値は根にあります。
・左の子は右の子より必ず小さい:ヒープが決めているのは親と子の大小関係だけで、兄弟どうしの大小は決まっていません。
・中間順にたどると小さい順に取り出せる:2分探索木の性質です。

覚え方のポイント
「ヒープ=根が最小(最大ヒープなら最大)」。根を取り出した後は、最後の要素を根に移して下へ入れ替えていけば、ヒープの性質を保てます。
問61-6

次の2分木を中間順(通りがけ順:左の部分木、節点、右の部分木の順)でたどったときの、節点の並びはどれか。
ABCDEFG

  • ①D B E A F C G
  • ②A B D E C F G
  • ③D E B F G C A
  • ④A B C D E F G
答えと解説を見る
正解 ①D B E A F C G
解説
中間順では、各節点について「左の部分木 → 節点 → 右の部分木」の順にたどります。
根Aの左の部分木(B、D、E)を先にたどると:D → B → E
次に根A
最後に右の部分木(C、F、G):F → C → G
つなげると D B E A F C G です。

他の選択肢が不適切な理由
・A B D E C F G:先行順(行きがけ順:節点 → 左 → 右)の結果です。
・D E B F G C A:後行順(帰りがけ順:左 → 右 → 節点)の結果です。
・A B C D E F G:上の段から順にたどる幅優先探索の結果です。

覚え方のポイント
「先行=節点が先」「中間=節点が真ん中」「後行=節点が後」と、節点を訪れるタイミングで名前が決まっています。2分探索木を中間順でたどると、値が昇順に並びます。
問71-6

ハッシュ法でデータを格納するとき、異なるキーからハッシュ関数で同じハッシュ値(格納位置)が得られてしまう現象を何というか。

  • ①衝突(シノニム)
  • ②オーバーフロー
  • ③デッドロック
  • ④フラグメンテーション
答えと解説を見る
正解 ①衝突(シノニム)
解説
ハッシュ法は、キーをハッシュ関数で計算して格納位置を決める方法で、キーから直接位置を計算できるため、探索が非常に速いのが特徴です。ただし、異なるキーから同じ格納位置が計算されてしまうことがあり、これを衝突(コリジョン)、同じ位置になったキーどうしをシノニムといいます。衝突が起きたときは、別の空き位置を探したり、同じ位置のデータをリストでつないだりして対処します。

他の選択肢が不適切な理由
・オーバーフロー:計算結果や格納するデータが、用意した範囲や領域を超えることです。
・デッドロック:複数の処理が互いに相手の持つ資源の解放を待ち、どれも先に進めなくなる状態です。
・フラグメンテーション:記憶領域の確保と解放を繰り返すうちに、空き領域が細切れになることです。

覚え方のポイント
「ハッシュ=計算で場所を決める(速い)」「弱点=衝突(シノニム)」。衝突が少なくなるよう、値がばらつくハッシュ関数を選ぶことが大切です。
問81-6

配列の特徴として、最も適切なものはどれか。

  • ①要素を取り出す順序が、格納した順序と必ず逆の順序になる
  • ②要素の挿入や削除は、前後の要素のポインタを変えるだけで済む
  • ③要素の数を、プログラムの実行中に自由に増やしたり減らしたりできる
  • ④添字を指定すれば、どの要素にも一定の時間でアクセスできる
答えと解説を見る
正解 ④添字を指定すれば、どの要素にも一定の時間でアクセスできる
解説
配列は、同じ型の要素を主記憶上の連続した領域に並べたデータ構造です。要素の位置は「先頭の位置 + 添字 × 要素の大きさ」で計算できるため、添字を指定すれば、どの要素にも一定の時間で直接アクセスできます。その反面、途中に要素を挿入・削除すると、後ろの要素をずらす必要があります。

他の選択肢が不適切な理由
・ポインタを変えるだけで挿入・削除:連結リストの特徴です。
・要素の数を実行中に自由に増減できる:一般的な(静的な)配列は、確保した大きさが固定です。
・取り出す順序が格納した順序と逆:スタックの特徴です。

覚え方のポイント
配列は「位置を計算で求められるから速い」。2分探索のように、途中の要素へ直接飛ぶアルゴリズムは、配列を前提にしています。
問91-6

連結リストの一種で、各要素が「次の要素」の位置と「前の要素」の位置の両方を持ち、前後どちらの方向にもたどれるリストはどれか。

  • ①単方向リスト
  • ②環状リスト
  • ③双方向リスト
  • ④2分木
答えと解説を見る
正解 ③双方向リスト
解説
双方向リストは、各要素が次の要素へのポインタ(次ポインタ)と、前の要素へのポインタ(前ポインタ)の2つを持つ連結リストです。前後どちらにもたどれるため、ある要素の直前に挿入したり、その要素自身を削除したりする操作を、先頭からたどり直さずに行えます。その分、ポインタの記憶領域と付け替えの手間は増えます。

他の選択肢が不適切な理由
・単方向リスト:次の要素へのポインタだけを持ち、一方向にしかたどれません。
・環状リスト:最後の要素のポインタが先頭の要素を指し、輪のようにつながったリストです。前後両方のポインタを持つとは限りません。
・2分木:各節点が最大2つの子を持つ木構造で、リストではありません。

覚え方のポイント
「単方向=次だけ」「双方向=次と前」「環状=最後が先頭につながる」。双方向で環状のリストもあるので、それぞれ独立した特徴として覚えましょう。
問101-6

木構造で表されるデータとして、最も適切なものはどれか。

  • ①駅と駅を結ぶ鉄道の路線のつながり
  • ②ファイルシステムのディレクトリの階層
  • ③レジの前に順番に並んだ客の行列
  • ④時刻の順に記録していった気温のデータ
答えと解説を見る
正解 ②ファイルシステムのディレクトリの階層
解説
木構造は、1つの根から枝分かれして広がる階層的なデータ構造で、各節点は1つの親を持ち(根を除く)、複数の子を持つことができます。ファイルシステムのディレクトリ(フォルダ)は、ルートディレクトリを根として、その下にサブディレクトリやファイルが階層的に配置されるため、木構造の典型例です。組織図も木構造で表せます。

他の選択肢が不適切な理由
・鉄道の路線網:駅と駅が複数の経路でつながり、ループもできるため、木構造ではなくグラフ(ネットワーク)で表します。
・レジの前の行列:先に並んだ人から処理するので、キューで表します。
・時刻の順に記録した気温:順番に並んだデータなので、配列(時系列データ)で表します。

覚え方のポイント
「階層=木」「つながりが網の目=グラフ」「順番待ち=キュー」「後から入れたものを先に=スタック」。データの性質とデータ構造を結びつけて覚えましょう。

基本情報技術者(科目A)の対策問題(全600問)に戻る

非公式の資格試験対策サイトです。独立行政法人情報処理推進機構(IPA)とは一切関係ありません。

※本ページでは、アクセス解析(Googleアナリティクス)と、広告の配信・成果の計測(A8.net)のためにCookie等を利用し、閲覧に関する情報をGoogle LLC・株式会社ファンコミュニケーションズへ送信しています。詳しくはプライバシーポリシーをご覧ください。

※本ページの問題・解説は、生成AI(人工知能)を活用して作成しています。

【PR】