📖 講義スライド

データ構造 開く ↗
ℹ️

注意: この年度では 「データ構造・符号理論」 として統合試験になっています。

📝 データ構造・符号理論 (2016)

PDF ↗
1

次の順にデータを挿入した二分探索木を求めよ。 27, 7, 51, 20, 6, 19

Binary tree diagram 27 7 6 20 19 51
解答を表示
A. 27をルートとし、7は左、51は右、20は7の右、6は7の左、19は20の左
解説: 二分探索木の構築: 27(ルート) → 7(左) → 51(右) → 20(7の右) → 6(7の左) → 19(20の左)。各ノードに対して、小さい値は左、大きい値は右に配置する。
2

次のリスト(N, E, W, S)から、要素 E を削除するために書き換えるアドレス、データ、ポインタを示せ。

アドレス データ ポインタ
100 E 200
200 W 300
300 S 0
400 N 100
解答を表示
A. アドレス400のポインタを100から200に書き換える
解説: リスト構造: N(400)→E(100)→W(200)→S(300)。Eを削除するには、Eを指しているN(アドレス400)のポインタを、Eの次の要素W(アドレス200)に変更する。つまり、アドレス400のポインタを100から200に書き換える。
3

空のキューとスタックに、次の操作を行った後、X, Y を求めよ。 enq(み), push(か), push(ん), enq(pop()), push(deq()), X = pop(), Y = deq()

解答を表示
A. X = み, Y = ん
解説: 操作の流れ: 1. enq(み) → キュー[み] 2. push(か) → スタック[か] 3. push(ん) → スタック[か,ん] 4. enq(pop()) → pop()で「ん」、キュー[み,ん] 5. push(deq()) → deq()で「み」、スタック[か,み] 6. X = pop() → 「み」 7. Y = deq() → 「ん」
4

16進数で表されるデータ 122, 235, 43B, 58E, 7A1, 8AF, ABA, C2D をハッシュ表に入れる。ハッシュ関数を H(x) = x mod 8 とするとき、最初に衝突が起きるのはどのデータか?

解答を表示
A. 43B
解説: 各データのハッシュ値: 122(16) = 290(10) → 290 mod 8 = 2 235(16) = 565(10) → 565 mod 8 = 5 43B(16) = 1083(10) → 1083 mod 8 = 3 58E(16) = 1422(10) → 1422 mod 8 = 6 7A1(16) = 1953(10) → 1953 mod 8 = 1 8AF(16) = 2223(10) → 2223 mod 8 = 7 ABA(16) = 2746(10) → 2746 mod 8 = 2 ← 122と衝突 C2D(16) = 3117(10) → 3117 mod 8 = 5 ← 235と衝突 最初に衝突するのはABA(122と同じハッシュ値2)。 ※問題文では「43B」が答えとなっている可能性がありますが、計算上はABAが正しい答えです。
5

LIFO を表すデータ構造は、リスト、配列、スタック、キュー、二分探索木、ハッシングのどれか?

解答を表示
A. スタック
解説: LIFO (Last In First Out: 後入れ先出し) を実現するデータ構造はスタック。最後に入れたデータが最初に取り出される。キューはFIFO (First In First Out: 先入れ先出し) である。

📝 データ構造 (2016)

PDF ↗
1

次の順にデータを挿入した二分探索木を求めよ。 27, 7, 51, 20, 6, 19

Binary tree diagram 27 7 6 20 19 51
解答を表示
A. 27をルートとし、7は左、51は右、20は7の右、6は7の左、19は20の左
解説: 二分探索木の構築: 27(ルート) → 7(左) → 51(右) → 20(7の右) → 6(7の左) → 19(20の左)。各ノードに対して、小さい値は左、大きい値は右に配置する。
2

次のリスト(N, E, W, S)から、要素 E を削除するために書き換えるアドレス、データ、ポインタを示せ。

アドレス データ ポインタ
100 E 200
200 W 300
300 S 0
400 N 100
解答を表示
A. アドレス400のポインタを100から200に書き換える
解説: リスト構造: N(400)→E(100)→W(200)→S(300)。Eを削除するには、Eを指しているN(アドレス400)のポインタを、Eの次の要素W(アドレス200)に変更する。つまり、アドレス400のポインタを100から200に書き換える。
3

空のキューとスタックに、次の操作を行った後、X, Y を求めよ。 enq(み), push(か), push(ん), enq(pop()), push(deq()), X = pop(), Y = deq()

解答を表示
A. X = み, Y = ん
解説: 操作の流れ: 1. enq(み) → キュー[み] 2. push(か) → スタック[か] 3. push(ん) → スタック[か,ん] 4. enq(pop()) → pop()で「ん」、キュー[み,ん] 5. push(deq()) → deq()で「み」、スタック[か,み] 6. X = pop() → 「み」 7. Y = deq() → 「ん」
4

16進数で表されるデータ 122, 235, 43B, 58E, 7A1, 8AF, ABA, C2D をハッシュ表に入れる。ハッシュ関数を H(x) = x mod 8 とするとき、最初に衝突が起きるのはどのデータか?

解答を表示
A. 43B
解説: 各データのハッシュ値: 122(16) = 290(10) → 290 mod 8 = 2 235(16) = 565(10) → 565 mod 8 = 5 43B(16) = 1083(10) → 1083 mod 8 = 3 58E(16) = 1422(10) → 1422 mod 8 = 6 7A1(16) = 1953(10) → 1953 mod 8 = 1 8AF(16) = 2223(10) → 2223 mod 8 = 7 ABA(16) = 2746(10) → 2746 mod 8 = 2 ← 122と衝突 C2D(16) = 3117(10) → 3117 mod 8 = 5 ← 235と衝突 最初に衝突するのはABA(122と同じハッシュ値2)。 ※問題文では「43B」が答えとなっている可能性がありますが、計算上はABAが正しい答えです。
5

LIFO を表すデータ構造は、リスト、配列、スタック、キュー、二分探索木、ハッシングのどれか?

解答を表示
A. スタック
解説: LIFO (Last In First Out: 後入れ先出し) を実現するデータ構造はスタック。最後に入れたデータが最初に取り出される。キューはFIFO (First In First Out: 先入れ先出し) である。