1.やさしい
テキストエディタの「元に戻す」(undo)機能に最も適したデータ構造はどれですか。
- Aハッシュセット
- Bグラフ
- Cスタック
- Dキュー
2.やさしい
ハッシュテーブルにおいて、衝突(collision)とは何ですか。
- A2 つの異なるキーが同じインデックスに対応すること
- Bキーをまったくハッシュできないこと
- Cテーブルのメモリが不足すること
- D2 つの等しいキーが 2 回格納されること
3.やさしい
グラフにおいて、閉路(cycle)とは何ですか。
- A重みが 0 の辺
- B辺をもたない頂点
- C同じ頂点から始まり同じ頂点で終わる経路
- Dすべての頂点を訪問する経路
4.ふつう
二分探索木を中間順(in-order)でたどると、キーはどの順序で訪問されますか。
- Aレベル順
- B常に降順
- C挿入順
- D昇順
5.ふつう
あるアプリケーションには高速な検索が必要で、さらにキーをソート順に一覧にしたり、範囲クエリに答えたりする必要もあります。最も適した構造はどれですか。
- A平衡二分探索木
- Bハッシュテーブル
- Cソートされていない連結リスト
- Dスタック
6.ふつう
同じ長さの連結リストを走査するより、配列を走査する方が実際にはずっと速いことが多いのはなぜですか。
- A連結リストは常に要素をディスクに格納するから
- B配列の走査は全体で O(1)、連結リストの走査は O(n) だから
- C配列では値を比較する命令が少なくて済むから
- D配列の要素は連続しているので、CPU キャッシュを有効に使えるから
7.むずかしい
二分探索木から 2 つの子を持つノードを削除するには、通常どうしますか。
- A部分木全体を削除する
- B中間順の後続ノード(または先行ノード)で置き換え、そのノードを削除する
- Cその下の部分木を一から作り直し、含まれていたすべてのキーを挿入し直す
- D根と入れ替える
8.むずかしい
データベースがインデックスに通常の B 木ではなく B+ 木をよく使うのはなぜですか。
- AB+ 木は二分の内部ノードを使うので、ディスクの読み取りが減るから
- Bすべてのレコードが連結された葉にあるので、範囲の走査が効率的になるから
- CB+ 木は平衡を保つ必要がないから
- DB+ 木はデータを根にだけ格納するから
解答
- 1. C · スタック
- 2. A · 2 つの異なるキーが同じインデックスに対応すること
- 3. C · 同じ頂点から始まり同じ頂点で終わる経路
- 4. D · 昇順
- 5. A · 平衡二分探索木
- 6. D · 配列の要素は連続しているので、CPU キャッシュを有効に使えるから
- 7. B · 中間順の後続ノード(または先行ノード)で置き換え、そのノードを削除する
- 8. B · すべてのレコードが連結された葉にあるので、範囲の走査が効率的になるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。