1.やさしい
ハッシュテーブルはデータをどのような形で格納しますか。
- Aソート済みリストのみ
- B固定長の文字列
- Cハッシュ関数で位置が決まるキーと値のペア
- Dキーが順序付けられた木
2.やさしい
スタックの一番上に要素を追加する操作の名前は何ですか。
- Aプッシュ(Push)
- Bピーク(Peek)
- Cポップ(Pop)
- Dエンキュー(Enqueue)
3.やさしい
抽象データ型としての集合(set)を定義する特徴は何ですか。
- A一方の端でだけアクセスを許す
- B要素をソート順に格納する
- C重複なしに要素を格納する
- Dキーと値の組を格納する
4.ふつう
リストの中ほどにあるノードへの参照をもっています。どのリストなら、それを O(1) で削除できますか。
- A単方向連結リスト
- B双方向連結リスト
- Cソート済み配列
- D動的配列
5.ふつう
二分ヒープをポインタなしで配列に格納できるのはなぜですか。
- Aヒープは 100 個を超える要素を含むことがないから
- Bヒープのすべてのキーは等しいから
- C完全二分木なので、位置が単純なインデックスの式に従うから
- D配列は自動的にキーをソート順に保つので、ポインタが不要になるから
6.ふつう
ある二分木の根は 1 で、左の子が 2、右の子が 3 です。ノード 2 の子は 4(左)と 5(右)です。行きがけ順の走査はどれですか。
- A1 2 3 4 5
- B4 5 2 3 1
- C1 2 4 5 3
- D4 2 5 1 3
7.むずかしい
セグメント木は一般的に何に使われますか。
- A各接頭辞を別々の木のノードに格納することで、文字列をアルファベット順にソートする
- Bグラフの辺を格納する
- C区間クエリ(区間和など)と更新を O(log n) で処理する
- Dスタックを実装する
8.むずかしい
あるオブジェクトをハッシュマップのキーとして格納した後、そのハッシュ関数で使われるフィールドを変更しました。起こりうる結果はどれですか。
- Aキーのハッシュはプログラムの開始時に 1 回しか計算されないので、何も変わらない
- Bオブジェクトは古いハッシュのバケットにあるので、検索に失敗することがある
- Cフィールドが変更された瞬間にマップがエラーを投げる
- Dマップが自動的にキーを新しいバケットに移す
解答
- 1. C · ハッシュ関数で位置が決まるキーと値のペア
- 2. A · プッシュ(Push)
- 3. C · 重複なしに要素を格納する
- 4. B · 双方向連結リスト
- 5. C · 完全二分木なので、位置が単純なインデックスの式に従うから
- 6. C · 1 2 4 5 3
- 7. C · 区間クエリ(区間和など)と更新を O(log n) で処理する
- 8. B · オブジェクトは古いハッシュのバケットにあるので、検索に失敗することがある
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。