private void insertFixUp(NoeudRN z)
    {
		while (z != racine && z.getPere().getCouleur() == Couleur.Rouge){
			if(z.getPere() == z.getGrandPere().getGauche()){
				NoeudRN y= z.getGrandPere().getDroit();
				if(y.getCouleur() == Couleur.Rouge){
					z.getPere().setCouleur(Couleur.Noir);
					y.setCouleur(Couleur.Noir);
					z.getGrandPere().setCouleur(Couleur.Rouge);
					z= z.getGrandPere();
				}
				else{
					if(z == z.getPere().getDroit()){
						z= z.getPere(); 
						rotationGauche(z);
					}
					z.getPere().setCouleur(Couleur.Noir);
					z.getGrandPere().setCouleur(Couleur.Rouge);
					rotationDroite(z.getGrandPere());
				}
			}
			else {
				NoeudRN y= z.getGrandPere().getGauche();
				if(y.getCouleur() == Couleur.Rouge){
					z.getPere().setCouleur(Couleur.Noir);
					y.setCouleur(Couleur.Noir);
					z.getGrandPere().setCouleur(Couleur.Rouge);
					z= z.getGrandPere();
				}
				else{
					if(z == z.getPere().getGauche()){
						z= z.getPere();
						rotationDroite(z);
					}
					z.getPere().setCouleur(Couleur.Noir);
					z.getGrandPere().setCouleur(Couleur.Rouge);
					rotationGauche(z.getGrandPere());
				}
			}
		}
		racine.setCouleur(Couleur.Noir);
    }