| 123 | #define RB_COLOR(N) (N)->color |
| 124 | |
| 125 | static void rotateLeft(Tree *t, Node *n) |
| 126 | { |
| 127 | Node *tmp = RB_RIGHT(n); |
| 128 | if ((RB_RIGHT(n) = RB_LEFT(tmp)) != nullptr) |
| 129 | RB_PARENT(RB_LEFT(tmp)) = n; |
| 130 | fix(n); |
| 131 | if ((RB_PARENT(tmp) = RB_PARENT(n)) != nullptr) |
| 132 | { |
| 133 | if (n == RB_LEFT(RB_PARENT(n))) |
| 134 | RB_LEFT(RB_PARENT(n)) = tmp; |
| 135 | else |
| 136 | RB_RIGHT(RB_PARENT(n)) = tmp; |
| 137 | } |
| 138 | else |
| 139 | t->root = tmp; |
| 140 | RB_LEFT(tmp) = n; |
| 141 | RB_PARENT(n) = tmp; |
| 142 | fix(tmp); |
| 143 | if (RB_PARENT(tmp) != nullptr) |
| 144 | fix(RB_PARENT(tmp)); |
| 145 | } |
| 146 | |
| 147 | static void rotateRight(Tree *t, Node *n) |
| 148 | { |
no test coverage detected