1.やさしい
二分木の帰りがけ順(postorder)の走査は、どの順序でノードを訪問しますか。
- A左部分木、次に右部分木、次にノード
- B左部分木、次にノード、次に右部分木
- Cノード、次に左部分木、次に右部分木
- D右部分木、次にノード、次に左部分木
2.やさしい
テキストエディタの「元に戻す」(undo)機能に最も適したデータ構造はどれですか。
- Aハッシュセット
- Bグラフ
- Cスタック
- Dキュー
3.やさしい
スタックに対する peek(または top)操作は何をしますか。
- A一番上の要素を取り除かずに返す
- Bスタックからすべての要素を取り除く
- C一番上の要素を取り除いて返す
- Dスタックの一番下の要素を返す
4.ふつう
容量 n の配列に格納された循環キューで、インデックス i の次の位置はどのように計算されますか。
- A(i − 1) mod n
- B2i + 1
- C(i + 1) mod n
- Di + 1
5.ふつう
無向グラフの隣接行列について正しいのはどれですか。
- A主対角線に関して対称である
- B主対角線には常に 1 が入っている
- C各行にちょうど 1 つの 1 がある
- D常に上三角行列である
6.ふつう
二分ヒープをポインタなしで配列に格納できるのはなぜですか。
- A完全二分木なので、位置が単純なインデックスの式に従うから
- B配列は自動的にキーをソート順に保つので、ポインタが不要になるから
- Cヒープのすべてのキーは等しいから
- Dヒープは 100 個を超える要素を含むことがないから
7.むずかしい
サーバーがハッシュ関数を万能(universal)族からランダムに選ぶのはなぜですか。
- Aテーブルのサイズを変更する必要をなくすため
- B攻撃者がどのようなキーを送っても、2 つのキーが決して衝突しないことを保証するため
- Cハッシュテーブルをソートされた状態にするため
- D攻撃者がすべて衝突する多数のキーを選べる可能性をきわめて低くするため
8.むずかしい
n 個の数の配列に対するフェニック木(Binary Indexed Tree)が O(log n) でサポートする操作はどれですか。
- AO(1) での中央値の検索
- B接頭辞和のクエリと単一要素の更新
- C任意の位置への要素の挿入
- D配列のソートと二分探索
解答
- 1. A · 左部分木、次に右部分木、次にノード
- 2. C · スタック
- 3. A · 一番上の要素を取り除かずに返す
- 4. C · (i + 1) mod n
- 5. A · 主対角線に関して対称である
- 6. A · 完全二分木なので、位置が単純なインデックスの式に従うから
- 7. D · 攻撃者がすべて衝突する多数のキーを選べる可能性をきわめて低くするため
- 8. B · 接頭辞和のクエリと単一要素の更新
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。