1.やさしい
抽象データ型としての集合(set)を定義する特徴は何ですか。
- Aキーと値の組を格納する
- B要素をソート順に格納する
- C重複なしに要素を格納する
- D一方の端でだけアクセスを許す
2.やさしい
配列の要素はメモリにどのように格納されますか。
- Aばらばらに、ポインタでつながれて
- Bメモリページの木の中に
- Cハッシュで選ばれたランダムな位置に
- D1 つの連続したブロックに、順に並んで
3.やさしい
優先度付きキューの実装に一般的に使われる構造はどれですか。
- Aスタック
- Bヒープ
- C文字列
- D順序のない単方向連結リスト
4.ふつう
二分ヒープをポインタなしで配列に格納できるのはなぜですか。
- A完全二分木なので、位置が単純なインデックスの式に従うから
- Bヒープのすべてのキーは等しいから
- C配列は自動的にキーをソート順に保つので、ポインタが不要になるから
- Dヒープは 100 個を超える要素を含むことがないから
5.ふつう
AVL 木と赤黒木が保証するものは何ですか。
- Aどの場合でも定数時間での探索
- B再平衡化による O(log n) の高さ
- C2 つの子を持つノードが存在しないこと
- Dキーが挿入順に格納されること
6.ふつう
ダイクストラ法が次に処理する頂点を選ぶために使う抽象データ型はどれですか。
- Aスタック
- B順序のない集合
- CFIFO キュー
- D最小優先度付きキュー
7.むずかしい
O(1) の追加メモリで、単方向連結リストが閉路を含むかどうかを検出するにはどうすればよいですか。
- A訪問したすべてのノードをハッシュ集合に格納する
- B一方のポインタを 1 歩ずつ、もう一方を 2 歩ずつ進め、出会うかどうかを調べる
- Cリストをソートして重複を探す
- D数がリストの長さのフィールドを超えるまでノードを数える
8.むずかしい
トポロジカルソートのためのカーンのアルゴリズムは、入次数 0 の頂点を繰り返し取り除きます。それらの頂点を保持する構造はどれですか。
- A訪問したすべての辺のスタック
- Bどの頂点がすでに取り除かれたかを記録する隣接行列
- C出次数で順序づけた最大ヒープ
- D入次数が 0 の頂点のキュー(または任意のコレクション)
解答
- 1. C · 重複なしに要素を格納する
- 2. D · 1 つの連続したブロックに、順に並んで
- 3. B · ヒープ
- 4. A · 完全二分木なので、位置が単純なインデックスの式に従うから
- 5. B · 再平衡化による O(log n) の高さ
- 6. D · 最小優先度付きキュー
- 7. B · 一方のポインタを 1 歩ずつ、もう一方を 2 歩ずつ進め、出会うかどうかを調べる
- 8. D · 入次数が 0 の頂点のキュー(または任意のコレクション)
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。