回転[アセット構造]ナビゲーション2(12-1-2)RR


もし今一定の眼力があれば!
RR回転はRight Right状態のバイナリナビゲーションツリーを回転させることを知っているはずです.
そしてこれ.
RR状態とLL状態の違い、回転の唯一の違いは方向ではありませんか?こんなもの!
そうだ!
唯一の違いは方向だ!!
参考までに、LL回転を指すことを「右回転」といいます.
これは、メモリ5のノードが右に回転するためである.
本当に方向が違うだけで、全く同じ形です.
私たちが注目しなければならない2つのことは、
記憶
  • 5のノードは、記憶7のノードの左側のサブノードとなる.
  • T 3は、記憶5のノードの右側サブツリーとなる.
  • これをpNodeとcNodeとして表します.
    (便宜上、pNode=PN、cNode=CN.)
  • PNをCNとする左側サブノード演算1
  • CNの左側サブツリーをPNとする右側サブツリー演算2
  • .
    これが!
    ChangeRightSubTree(pNode,GetLeftSubTree(cNode)); - 연산 2
    ChangeLeftSubTree(cNode,pNode); - 연산 1
    はい.
    CNの左サブツリーの移動を優先するので、先に演算2を行わなければなりません!
    そうでなければ、演算1はCNの左サブツリーのアドレス値を失います!!