1.やさしい
単方向連結リストでは、最後のノードの next ポインタには何が入っていますか。
- A前のノードのアドレス
- Bリストのノードの数
- Cnull(ノードなし)
- D最初のノードのアドレス
2.やさしい
「先入れ先出し」(FIFO)の原理で動作するデータ構造はどれですか。
- A二分木(Binary tree)
- Bキュー(Queue)
- Cヒープ(Heap)
- Dスタック(Stack)
3.やさしい
二分木の帰りがけ順(postorder)の走査は、どの順序でノードを訪問しますか。
- A左部分木、次に右部分木、次にノード
- B左部分木、次にノード、次に右部分木
- Cノード、次に左部分木、次に右部分木
- D右部分木、次にノード、次に左部分木
4.ふつう
平衡二分探索木でキーを探索する時間計算量はどれですか。
- AO(n log n)
- BO(n)
- CO(1)
- DO(log n)
5.ふつう
高さを辺の数で数えるとき、高さ h の完全(perfect)二分木にはいくつのノードがありますか。
- A2h + 1
- Bh2
- C2h+1 − 1
- D2h
6.ふつう
後置記法の式 3 4 + 2 * の値は何ですか。
- A11
- B24
- C14
- D10
7.むずかしい
ある AVL ノードは、その左の子の右部分木が高くなりすぎたために平衡が崩れています(左右の場合)。どのような修正が適用されますか。
- A左の子で左回転し、次にそのノードで右回転
- Bそのノードで 1 回の右回転
- C左の子で右回転し、次にそのノードで左回転
- Dそのノードで 1 回の左回転
8.むずかしい
O(1) の追加メモリで、単方向連結リストが閉路を含むかどうかを検出するにはどうすればよいですか。
- A数がリストの長さのフィールドを超えるまでノードを数える
- B一方のポインタを 1 歩ずつ、もう一方を 2 歩ずつ進め、出会うかどうかを調べる
- Cリストをソートして重複を探す
- D訪問したすべてのノードをハッシュ集合に格納する
解答
- 1. C · null(ノードなし)
- 2. B · キュー(Queue)
- 3. A · 左部分木、次に右部分木、次にノード
- 4. D · O(log n)
- 5. C · 2h+1 − 1
- 6. C · 14
- 7. A · 左の子で左回転し、次にそのノードで右回転
- 8. B · 一方のポインタを 1 歩ずつ、もう一方を 2 歩ずつ進め、出会うかどうかを調べる
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。