void insert(RedBlackNode z)
    {
    	RedBlackNode y = nil;
    	RedBlackNode x = root;
    	
    	while(x != nil)
    	{
    		y = x;
    		if(z.key.compareTo(x.key) < 0)
    			x = x.left;
    		else
    			x = x.right;
    	}
    	
    	z.parent = y;
    	if(y == nil)
    		root = z;
    	else if(z.key.compareTo(y.key) < 0)
    		y.left = z;
    	else
    		y.right = z;
    	
    	z.left = nil;
    	z.right = nil;
    	z.color = RED;
    	
    	insertFixUP(z);
    }