実践問題
解答&解説は第1問から第10問までを列挙しています。
まず問題を解いてから解答&解説を見ることを推奨します。
第1問
スタックの特徴として、最も適切なものはどれか。
ア. 最初に格納したデータを最初に取り出す
イ. 最後に格納したデータを最初に取り出す
ウ. 任意位置のデータを一定時間で取り出せる
エ. 格納順序に関係なく優先度順に取り出す
解答&解説はこちら
第2問
空のスタックに対して、順に push(A), push(B), push(C), pop(), push(D), pop() を行った。
取り出されたデータの順序として正しいものはどれか。
ア. C, D
イ. C, B
ウ. D, C
エ. B, D
解答&解説はこちら
第3問
キューの特徴として、最も適切なものはどれか。
ア. 最後に格納したデータを最初に取り出す
イ. 先頭と末尾の両方から削除できる
ウ. 最初に格納したデータを最初に取り出す
エ. 取り出し順は探索アルゴリズムによって決まる
解答&解説はこちら
第4問
空のキューに対して、順に enqueue(1), enqueue(2), enqueue(3), dequeue(), enqueue(4), dequeue() を行った。
取り出されたデータの順序として正しいものはどれか。
ア. 1, 2
イ. 3, 4
ウ. 1, 4
エ. 2, 3
解答&解説はこちら
第5問
単方向連結リストにおいて、各要素が保持するものとして適切なものはどれか。
ア. 前の要素への参照だけ
イ. 次の要素への参照だけ
ウ. 前後両方の要素への参照
エ. 先頭要素への参照だけ
解答&解説はこちら
第6問
双方向連結リストの特徴として適切なものはどれか。
ア. 末尾から先頭へはたどれない
イ. 各要素が前後の要素への参照を持つ
ウ. 必ず循環構造になる
エ. 挿入や削除に配列より常に多くの時間を要する
解答&解説はこちら
第7問
幅優先探索(BFS)で利用されるデータ構造はどれか。
ア. スタック
イ. キュー
ウ. 木
エ. ハッシュ表
解答&解説はこちら
第8問
深さ優先探索(DFS)で利用されるデータ構造はどれか。
ア. スタック
イ. キュー
ウ. 配列
エ. リスト
解答&解説はこちら
第9問
連結リストの特徴として、最も適切なものはどれか。
ア. 途中への挿入・削除がしやすい
イ. 任意位置への直接アクセスが高速である
ウ. 要素数は固定である
エ. 探索は常に一定時間である
解答&解説はこちら
第10問
キューに関する操作の説明として正しいものはどれか。
ア. enqueue は先頭から取り出す操作である
イ. dequeue は末尾に追加する操作である
ウ. enqueue は末尾に追加する操作である
エ. dequeue は優先度の高い要素から取り出す操作である
解答&解説はこちら
解答&解説
解答:第1問
正解:イ
スタックは LIFO(Last In, First Out)。最後に入れたものを最初に取り出す。
解答:第2問
正解:ア
操作を順に追う。
- push(A) → A
- push(B) → A, B
- push(C) → A, B, C
- pop() → C
- push(D) → A, B, D
- pop() → D
したがって C, D
解答:第3問
正解:ウ
キューは FIFO(First In, First Out)。最初に入れたものを最初に取り出す。
解答:第4問
正解:ア
- enqueue(1) → 1
- enqueue(2) → 1, 2
- enqueue(3) → 1, 2, 3
- dequeue() → 1
- enqueue(4) → 2, 3, 4
- dequeue() → 2
よって 1, 2
解答:第5問
正解:イ
単方向連結リストでは、各要素は 次の要素への参照 を持つ。
解答:第6問
正解:イ
双方向連結リストでは、前後両方向にたどれるように 前の要素・次の要素への参照 を持つ。
解答:第7問
正解:イ
幅優先探索では、先に見つけた頂点から順に処理するため キュー を使う。
解答:第8問
正解:ア
深さ優先探索では、最後に見つけた頂点を先に処理するため スタック を使う。
解答:第9問
正解:ア
連結リストはポインタの付け替えで 挿入・削除がしやすい。
ただし、途中要素の探索は先頭から順にたどる必要がある。
解答:第10問
正解:ウ
enqueue は 末尾への追加、
dequeue は 先頭から取り出す 操作。

コメント