public void rb_insert(RBNode z) {
        RBNode y = nil;
        RBNode x = root;
        //  System.out.println(z.getKey());
        while (x != nil) {
            y = x;
            if (z.getKey() < x.getKey()) {
                x = x.getLeft();
            } else {
                x = x.getRight();
            }
        }
        z.setParrent(y);
        //  makeDotFile();
        if (y == nil) {
            root = z;
        } else {
            if (z.getKey() < y.getKey()) {
                y.setLeft(z);
                //  makeDotFile();
            } else {
                y.setRight(z);
                //   makeDotFile();
            }
        }
        z.setLeft(nil);
        z.setRight(nil);
        z.setColor(Color.RED);
        rb_insert_fixup(z);
    }