Arbre 2-3-4

anis -  
 anis -
Bonjour,
S'il vous plais j' ai besoin d'une petite aide sur comment en fais l'éclatement dans les arbres 2-3-4?En faite d'après le cours que je l'ai lu sur les arbres 2-3-4 , l'éclatement se fais lorsqu'on ajoute un élément dans une arbre, c'est à dire si on un fils qu'a 3 élément, on crée 2 fils, on fait monter l'élément au milieux élément[1] et on l'ajoute dans le neoud père, si de même le père contient 3 élément on l'éclate aussi .
J'ai pas compris comment je fais cette fonction, j'ai commencé de faire la fonction ajouter de cette manière:
   public void AjouterElement(int Elem , Abre2_3_4 A)
	{
    	  int nobrfils = A.racine.length+1;
    	  if(A.ArbreVide())
		{
			A.racine[0]=Elem;		
		}
		
	    else
	    {
			switch(nobrfils)
			{
			case(2):
			{
				
		        if(Elem<A.racine[0])
		       {
		        	
		                eclate(fils1);
		         AjouterElement(Elem,fils1);
		       }
		       else
		       {
		    	   
		    	eclate(fils2);
		    	AjouterElement(Elem,fils2);
		       }
		        break;
			}
		    case(3):
		    {
		       if(Elem<A.racine[0])
		       {
		    	   
		    	   eclate(fils1);
		    	   
		    	   AjouterElement(Elem, fils1);
		       }
		       else if(A.racine[0]<Elem && Elem<A.racine[1])
		       {
		    	   
		    	   eclate(fils2);
		    	   AjouterElement(Elem, fils2);
		       }
		       else 
		       {
		    	  
		    	   eclate(fils3);
		    	   AjouterElement(Elem, fils3);
		       }
		       break;
		    }
		    case(4):
		    {
		       if(Elem<A.racine[0])
		       {
		    	   
		    	   eclate(fils1);
		    	   AjouterElement(Elem, fils1);
		       }
		       else if(A.racine[0]<Elem  && Elem<A.racine[1])
		       {
		    	  
		    	   eclate(fils2);
		    	   AjouterElement(Elem, fils2);
		       }
		       else if(A.racine[1]<Elem  && Elem<A.racine[2])
		       {
		    	   
		    	   eclate(fils3);
		    	   AjouterElement(Elem, fils3);
		       }
		       else
		       {
		    	   
		    	   eclate(fils4);
		    	   AjouterElement(Elem, fils4);
		       }
		       break;
		    }
			
		  }
			
		 }
		}
				



il me reste la fonction éclater je ne sais pas comment je peux le faire.Merci en avance pour vos aides

1 réponse

  1. anis
     
    en faite j'ai fais la fonction éclater comme ca
    private void eclate(Abre2_3_4 A) {
    		// TODO Auto-generated method stub
    		
    			Noeud n=new Noeud();	
    			int[] E1=new int[1];
    			int[] E2=new int[1];
    			
    			if(A.racine.length==3)
    			{
    		    n.racine[0]=A.racine[1];
    			E1[0]=A.racine[1];
    			E2[0]=A.racine[2];
    		    nouvelArbre1(n.racine,nouvelArbre1(E1,A.fils1,A.fils2),nouvelArbre1(E2,A.fils3,A.fils4));
    			}
    		
    	}
    
    est ce que c'est juste ou non en plus comment je peux le liée le noeud crée avec la racine ???
    0
    1. anis
       
      il n' y a pas une aide ou explication slvp? Je suis bloqué là et je ne sais comment je peux programmer
      0
    2. anis
       
      pour quoi vous me répondez pas???
      0