1.やさしい
グラフは何で構成されていますか。
- A辺(edge)で結ばれた頂点(vertex、ノード)
- Bキーとハッシュ値のみ
- C根と葉のみ
- D行と列
2.やさしい
二分木を定義するものは何ですか。
- Aすべてのノードが 2 進数を格納する
- Bすべてのノードがちょうど 2 つの子をもつ
- Cすべてのノードが高々 2 つの子をもつ
- D木がちょうど 2 つのレベルをもつ
3.やさしい
ハッシュテーブルの負荷率(load factor)とは何ですか。
- Aディスクからテーブルを読み込むのに必要な時間
- B格納された要素の数をバケットの数で割ったもの
- Cこれまでの衝突の数
- Dバケットの数を、格納されたキーの平均の長さで割ったもの
4.ふつう
二分ヒープをポインタなしで配列に格納できるのはなぜですか。
- Aヒープのすべてのキーは等しいから
- Bヒープは 100 個を超える要素を含むことがないから
- C配列は自動的にキーをソート順に保つので、ポインタが不要になるから
- D完全二分木なので、位置が単純なインデックスの式に従うから
5.ふつう
二分最小ヒープの extract-min はどのように動作しますか。
- A最後の要素を根に移し、下へ移動させる(sift down)
- Bすべての葉から新しい最小値を探す
- C根を取り除き、すべての要素を 1 つ左にずらす
- D配列の最後の要素を取り除く
6.ふつう
高さを辺の数で数えるとき、高さ h の完全(perfect)二分木にはいくつのノードがありますか。
- A2h+1 − 1
- B2h + 1
- C2h
- Dh2
7.むずかしい
循環バッファでは、front == rear は空と満杯のどちらも意味しえます。これらを区別する一般的な方法はどれですか。
- A要素数を別に保持するか、常に 1 つのスロットを使わずに残しておく
- Bfront と rear が等しいときは常にバッファをクリアして、空の状態にする
- Cバッファのサイズを 2 のべき乗にする
- Dfront と rear を同じ変数に格納する
8.むずかしい
サーバーがハッシュ関数を万能(universal)族からランダムに選ぶのはなぜですか。
- Aハッシュテーブルをソートされた状態にするため
- B攻撃者がすべて衝突する多数のキーを選べる可能性をきわめて低くするため
- Cテーブルのサイズを変更する必要をなくすため
- D攻撃者がどのようなキーを送っても、2 つのキーが決して衝突しないことを保証するため
解答
- 1. A · 辺(edge)で結ばれた頂点(vertex、ノード)
- 2. C · すべてのノードが高々 2 つの子をもつ
- 3. B · 格納された要素の数をバケットの数で割ったもの
- 4. D · 完全二分木なので、位置が単純なインデックスの式に従うから
- 5. A · 最後の要素を根に移し、下へ移動させる(sift down)
- 6. A · 2h+1 − 1
- 7. A · 要素数を別に保持するか、常に 1 つのスロットを使わずに残しておく
- 8. B · 攻撃者がすべて衝突する多数のキーを選べる可能性をきわめて低くするため
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。