1.やさしい
スタックに対する peek(または top)操作は何をしますか。
- A一番上の要素を取り除いて返す
- Bスタックからすべての要素を取り除く
- C一番上の要素を取り除かずに返す
- Dスタックの一番下の要素を返す
2.やさしい
木において、葉(leaf)とは何ですか。
- A親をもたないノード
- B最大の値をもつノード
- Cちょうど 1 つの子をもつノード
- D子をもたないノード
3.やさしい
配列の要素はメモリにどのように格納されますか。
- Aメモリページの木の中に
- Bばらばらに、ポインタでつながれて
- C1 つの連続したブロックに、順に並んで
- Dハッシュで選ばれたランダムな位置に
4.ふつう
AVL 木はすべてのノードでどのような平衡条件を保っていますか。
- A左右の部分木の高さの差が高々 1 である
- Bすべての葉がちょうど同じ深さにある
- Cすべてのノードが赤または黒に塗られている
- Dすべてのノードの両方の部分木が、まったく同じ数のノードを含む
5.ふつう
固定のアルファベットをもつトライで、長さ L の単語を探索するのにどれだけ時間がかかりますか。
- A格納されている単語の数に関係なく O(L)
- B単語の数を n として O(n)
- C単語の数を n として O(log n)
- DO(L × n)
6.ふつう
二分探索木を中間順(in-order)でたどると、キーはどの順序で訪問されますか。
- A昇順
- B常に降順
- C挿入順
- Dレベル順
7.むずかしい
データベースやファイルシステムで B 木が使われるのはなぜですか。
- Aデータをソートせずに格納するから
- Bどの配列よりもメモリ使用量が少ないので、索引全体が常に主記憶に収まるから
- C分岐数が大きいため木が浅く保たれ、遅いディスク読み込みが減るから
- D再平衡化が不要だから
8.むずかしい
O(1) の追加メモリで、単方向連結リストが閉路を含むかどうかを検出するにはどうすればよいですか。
- A訪問したすべてのノードをハッシュ集合に格納する
- Bリストをソートして重複を探す
- C数がリストの長さのフィールドを超えるまでノードを数える
- D一方のポインタを 1 歩ずつ、もう一方を 2 歩ずつ進め、出会うかどうかを調べる
解答
- 1. C · 一番上の要素を取り除かずに返す
- 2. D · 子をもたないノード
- 3. C · 1 つの連続したブロックに、順に並んで
- 4. A · 左右の部分木の高さの差が高々 1 である
- 5. A · 格納されている単語の数に関係なく O(L)
- 6. A · 昇順
- 7. C · 分岐数が大きいため木が浅く保たれ、遅いディスク読み込みが減るから
- 8. D · 一方のポインタを 1 歩ずつ、もう一方を 2 歩ずつ進め、出会うかどうかを調べる
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。