diff options
-rw-r--r-- | shape.c | 104 |
1 files changed, 52 insertions, 52 deletions
@@ -156,74 +156,74 @@ static redblack_node_t * redblack_balance(char color, ID key, rb_shape_t * value, redblack_node_t * left, redblack_node_t * right) { if (color == BLACK) { - ID z, y, x; - rb_shape_t * z_, * y_, * x_; - redblack_node_t * a, * b, * c, * d; if (redblack_red_p(left) && redblack_red_p(redblack_left(left))) { - z = key; - z_ = value; - d = right; - y = left->key; - y_ = redblack_value(left); - c = redblack_right(left); - x = redblack_left(left)->key; - x_ = redblack_value(redblack_left(left)); - a = redblack_left(redblack_left(left)); - b = redblack_right(redblack_left(left)); } else if (redblack_red_p(left) && redblack_red_p(redblack_right(left))) { - z = key; - z_ = value; - d = right; - - x = left->key; - x_ = redblack_value(left); - a = redblack_left(left); - - y = redblack_right(left)->key; - y_ = redblack_value(redblack_right(left)); - b = redblack_left(redblack_right(left)); - c = redblack_right(redblack_right(left)); } else if (redblack_red_p(right) && redblack_red_p(redblack_left(right))) { - x = key; - x_ = value; - a = left; - - z = right->key; - z_ = redblack_value(right); - d = redblack_right(right); - - y = redblack_left(right)->key; - y_ = redblack_value(redblack_left(right)); - b = redblack_left(redblack_left(right)); - c = redblack_right(redblack_left(right)); } else if (redblack_red_p(right) && redblack_red_p(redblack_right(right))) { - x = key; - x_ = value; - a = left; - - y = right->key; - y_ = redblack_value(right); - b = redblack_left(right); - - z = redblack_right(right)->key; - z_ = redblack_value(redblack_right(right)); - c = redblack_left(redblack_right(right)); - d = redblack_right(redblack_right(right)); } else { return redblack_new(color, key, value, left, right); } return redblack_new( - RED, y, y_, - redblack_new(BLACK, x, x_, a, b), - redblack_new(BLACK, z, z_, c, d)); } return redblack_new(color, key, value, left, right); |