| 453 | |
| 454 | |
| 455 | static Node rightBalance(Object key, Object val, Node left, Node ins){ |
| 456 | if(ins instanceof Red && ins.right() instanceof Red) |
| 457 | return red(ins.key, ins.val(), black(key, val, left, ins.left()), ins.right().blacken()); |
| 458 | else if(ins instanceof Red && ins.left() instanceof Red) |
| 459 | return red(ins.left().key, ins.left().val(), |
| 460 | black(key, val, left, ins.left().left()), |
| 461 | black(ins.key, ins.val(), ins.left().right(), ins.right())); |
| 462 | else |
| 463 | return black(key, val, left, ins); |
| 464 | } |
| 465 | |
| 466 | Node replace(Node t, Object key, Object val){ |
| 467 | int c = doCompare(key, t.key); |