1.やさしい
有向グラフとは何ですか。
- A相異なるすべての頂点対が辺で結ばれているグラフ
- B閉路をもたないグラフ
- C辺がある頂点から別の頂点への向きをもつグラフ
- Dすべての辺が重みをもつグラフ
2.やさしい
配列の要素はメモリにどのように格納されますか。
- A1 つの連続したブロックに、順に並んで
- Bメモリページの木の中に
- Cハッシュで選ばれたランダムな位置に
- Dばらばらに、ポインタでつながれて
3.やさしい
最大ヒープ性(max-heap property)とは何ですか。
- Aすべての親のキーがその子のキー以上である
- Bすべての左の子のキーが右の兄弟のキー以上である
- Cキーが左から右へソートされている
- Dすべての葉が最大のキーをもつ
4.ふつう
V 個の頂点と E 本の辺をもつグラフについて、隣接リストはどれだけのメモリを使いますか。
- AO(E²)
- BO(V²)
- CO(V + E)
- DO(V × E)
5.ふつう
平衡二分探索木でキーを探索する時間計算量はどれですか。
- AO(log n)
- BO(n)
- CO(n log n)
- DO(1)
6.ふつう
配列に格納された二分最小ヒープ(インデックスは 0 から)において、インデックス i のノードの子はどこにありますか。
- A2i + 1 と 2i + 2
- B2i と 2i + 1
- Ci/2 と i/2 + 1
- Di + 1 と i + 2
7.むずかしい
基数木(radix tree、圧縮トライ)は通常のトライをどのように改良していますか。
- A各単語を別々のノードではなく、根にあるハッシュテーブルに格納する
- B各単語の最初の文字だけを保持する
- C各ノードの子を頻度順にソートする
- D子が 1 つだけのノードの連なりを、文字列でラベル付けされた 1 本の辺にまとめる
8.むずかしい
AVL 木にキーを挿入すると、あるノードの左部分木が高くなりすぎました。新しいキーはその左の子の左部分木に入りました(左左の場合)。どのような修正が適用されますか。
- A子で左回転し、次にそのノードで右回転
- B平衡が崩れたノードで 1 回の右回転
- Cそのノードとその子の色を塗り替える
- D平衡が崩れたノードで 1 回の左回転
解答
- 1. C · 辺がある頂点から別の頂点への向きをもつグラフ
- 2. A · 1 つの連続したブロックに、順に並んで
- 3. A · すべての親のキーがその子のキー以上である
- 4. C · O(V + E)
- 5. A · O(log n)
- 6. A · 2i + 1 と 2i + 2
- 7. D · 子が 1 つだけのノードの連なりを、文字列でラベル付けされた 1 本の辺にまとめる
- 8. B · 平衡が崩れたノードで 1 回の右回転
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。