アルゴリズムイントロダクション 12 章「2分探索木」

数学的基礎とデータ構造 (アルゴリズムイントロダクション)の 12章

12.1-1

木の高さってルートは含まないのか。ノートに描いた。

12.1-2

親と子の関係が異なる。
O(n) では出来ない。兄弟ノードの順序を決められない。

12.1-3

スタックに push して最後に出力。

12.1-4

そのまんま。
L->R->M。M->L->R。

12.1-5

分かりません。

12.2-1

(c) 911 の left に 912 がある
(e) 347 の right に 299 がある

12.2-2

TREE-MINIMUM(x)
  if left[x] == Nil
      return x
  else
     return TREE-MINIMUM(left[x])
  endif

12.2-3

TREE-PREDECESSOR(x)
  if left[x] != NIL
    then return TREE-MINIMUM(left[x])
  y <- p[x]
  while y != NIL and x = left[y]
    do x <- y
      y <- p[y]
  return y

12.2-4

図12.2 の 3 が見つかった葉の場合。

12.2-5

定義より明らか。

12.2-6

分かりません。

12.2-7

そのまま。

12.2-8

TREE-SUCCESSOR は木を降りきるか、そのあと上るだけだから。

12.2-8

x が y の left の場合、二分探索木の定義を再帰的に葉に当てはめていくと明らか。
right の場合も同様。

12.3-1

TREE-INSERT(x, y, z)
  if x == NIL then
    p[z] <- y
  else
    if key[z] < key[y]
      return TREE-INSERT(left[x], x, z)
    else
      return TREE-INSERT(right[x], x, z)
    end
  end
  if y == NIL then
    root[T] <- z
  else if key[z] < key[y]
    left[y] <- z
  else
    right[y] <-z
  end

12.3-2

分かりません。

12.3-3

最良時は log(n)。
最悪時は n^2 。

12.3-4

ノードが再利用されてポインタが変わってしまう

12.3-5

root を削除する場合に違う。

12.3-6

分かりません。

数学的基礎とデータ構造 (アルゴリズムイントロダクション)
T. コルメン R. リベスト C. シュタイン C. ライザーソン
近代科学社
売り上げランキング: 32572