1.やさしい
配列では遅いが、連結リストの先頭では速い操作はどれですか。
- A固定長配列の長さの取得
- Bインデックスによる最後の要素の読み取り
- C先頭への挿入
- D5 番目の要素へのアクセス
2.やさしい
優先度付きキューの実装に一般的に使われる構造はどれですか。
- Aスタック
- B文字列
- Cヒープ
- D順序のない単方向連結リスト
3.やさしい
二分探索木において、あるノードの左部分木にある値はどうなっていますか。
- Aそのノードの値より大きい
- Bそのノードの値と等しい
- Cランダムな順序
- Dそのノードの値より小さい
4.ふつう
衝突したキーを同じバケット内のリストに格納する衝突解決法はどれですか。
- Aダブルハッシュ法(Double hashing)
- B線形探査法(Linear probing)
- Cチェイン法(Separate chaining)
- D二次探査法(Quadratic probing)
5.ふつう
サイズ 7 のハッシュテーブルが h(k) = k mod 7 と線形探査法を使っています。10 を挿入した後、17 はどこに格納されますか。
- Aインデックス 0
- Bインデックス 6
- Cインデックス 4
- Dインデックス 3
6.ふつう
AVL 木はすべてのノードでどのような平衡条件を保っていますか。
- Aすべてのノードが赤または黒に塗られている
- Bすべての葉がちょうど同じ深さにある
- Cすべてのノードの両方の部分木が、まったく同じ数のノードを含む
- D左右の部分木の高さの差が高々 1 である
7.むずかしい
あるオブジェクトをハッシュマップのキーとして格納した後、そのハッシュ関数で使われるフィールドを変更しました。起こりうる結果はどれですか。
- Aフィールドが変更された瞬間にマップがエラーを投げる
- Bマップが自動的にキーを新しいバケットに移す
- Cオブジェクトは古いハッシュのバケットにあるので、検索に失敗することがある
- Dキーのハッシュはプログラムの開始時に 1 回しか計算されないので、何も変わらない
8.むずかしい
ダブルハッシュ法が主に軽減する線形探査法の問題はどれですか。
- Aキーの値を読み取る O(n) のコスト
- Bキーをテーブルに格納する必要があること
- C使用中のスロットが長く連なる一次クラスタリング
- Dハッシュ関数が必要であること
解答
- 1. C · 先頭への挿入
- 2. C · ヒープ
- 3. D · そのノードの値より小さい
- 4. C · チェイン法(Separate chaining)
- 5. C · インデックス 4
- 6. D · 左右の部分木の高さの差が高々 1 である
- 7. C · オブジェクトは古いハッシュのバケットにあるので、検索に失敗することがある
- 8. C · 使用中のスロットが長く連なる一次クラスタリング
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。