実践問題
解答&解説は第1問から第10問までを列挙しています。
まず問題を解いてから解答&解説を見ることを推奨します。
第1問
線形リストに対する操作として,末尾への挿入時間を最も短くできる構造はどれか。
- 単方向連結リスト(先頭ポインタのみ保持)
- 単方向連結リスト(先頭・末尾ポインタ保持)
- 配列のみ使用した固定長リスト
- 双方向連結リスト(先頭ポインタのみ保持)
解答&解説はこちら
第2問
スタックを用いて実現される処理として,最も適切なものはどれか。
- プリンタの印刷待ち管理
- 幅優先探索
- 関数呼出しの戻り管理
- ジョブスケジューリング
解答&解説はこちら
第3問
空のスタックに対して,次の操作を行う。
push(A)
push(B)
pop()
push(C)
pop()
最後に取り出されるデータとして適切なものはどれか。
- A
- B
- C
- 取り出されない
解答&解説はこちら
第4問
キュー構造におけるFIFOの意味として,最も適切なものはどれか。
- 最後に入れたデータを最初に取り出す
- 最初に入れたデータを最初に取り出す
- データをランダム順に取り出す
- 優先度順に取り出す
解答&解説はこちら
第5問
循環キュー(リングバッファ)の利点として,最も適切なものはどれか。
- データを無限に格納できる
- メモリ領域を効率的に再利用できる
- 必ずソート済み状態を維持できる
- 双方向探索が高速化される
解答&解説はこちら
第6問
双方向連結リストの特徴として,最も適切なものはどれか。
- 前方向にしか走査できない
- 要素削除時に前ノード探索が不要になる
- 配列より必ずメモリ効率が高い
- インデックスによる直接アクセスが高速である
解答&解説はこちら
第7問
次の操作に最も適したデータ構造はどれか。
- 先頭からデータを取り出す
- 末尾へデータを追加する
- スタック
- キュー
- 木構造
- ハッシュ表
解答&解説はこちら
第8問
逆ポーランド記法(後置記法)の計算処理に最も適しているデータ構造はどれか。
- キュー
- 配列
- スタック
- グラフ
解答&解説はこちら
第9問
単方向連結リストにおいて,要素Xの直後へ新要素Yを挿入する場合に必要な操作として最も適切なものはどれか。
- YのポインタをNULLにするだけ
- Xの次ポインタをYへ向け,Yの次ポインタを旧次要素へ向ける
- 全要素をコピーする
- リスト全体を逆順に並べ替える
解答&解説はこちら
第10問
次の操作列をキューで実行した場合,最後に取り出されるデータはどれか。
enqueue(A)
enqueue(B)
dequeue()
enqueue(C)
dequeue()
- A
- B
- C
- 何も取り出されない
解答&解説はこちら
解答&解説
解答:第1問
正解:2
末尾ポインタを保持していれば,
末尾挿入を高速(O(1))で実行できる。
解答:第2問
正解:3
スタックはLIFO構造。
関数呼出しの戻り管理や再帰処理に利用される。
解答:第3問
正解:3
操作順:
- push A → [A]
- push B → [A,B]
- pop → B除去
- push C → [A,C]
- pop → C取り出し
解答:第4問
正解:2
FIFO:
First In First Out
最初に入れたものを最初に取り出す。
解答:第5問
正解:2
循環キューは,
配列領域を循環利用することでメモリ効率を高める。
解答:第6問
正解:2
双方向連結リストでは前後ポインタを持つため,
削除時の前ノード探索が不要。
解答:第7問
正解:2
- 末尾追加
- 先頭取出し
は典型的なキュー操作。
解答:第8問
正解:3
逆ポーランド記法は,
演算子出現時に直前オペランドを取り出す必要があるためスタックを用いる。
解答:第9問
正解:2
連結リスト挿入では,
ポインタ接続順序が重要。
解答:第10問
正解:2
操作順:
- enqueue A → [A]
- enqueue B → [A,B]
- dequeue → A取り出し
- enqueue C → [B,C]
- dequeue → B取り出し
最後に取り出されるのはB。
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

まずは無料でキャリア相談

コメント