Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2949 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  déplacer un noeud d'un arbre vers un autre noeud

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

déplacer un noeud d'un arbre vers un autre noeud

n°2371981
lynajar
Posté le 19-12-2020 à 22:36:08  profilanswer
 

Bonsoir;
j'ai un arbre binaire et je veux déplacer un noeud qui se trouve dans un coté droit vers un autre noeud au coté gauche.
j'ai 4 noeuds, 1, 2, 3, 4, 5, 6
le noeud 1 est la racine, le noeud 2 est connecté au noeud 1 coté gauche, le noeud 3 est connecté au neoud 1 coté droit, le noeud 4 est connecté au noeud 3 coté droit, le noeud 5 est connecté au noeud 4 coté droit et le noeud 6 est connecté au noeud 5 coté droit.
c-à-d, le pere de 2 est 1 (pere[2]=1), le pere de 3 est 1 (pere[3]=1), le pere de 4 est 3 (pere[4]=3), le pere de 5 est 4 (pere[5]=4), le pere de 6 est 5 (pere[6]=5).
je veux déplacer le noeud 4 vers le noeud 3 coté gauche, et les noeuds  5 et 6 reste connecter au noeud 3 coté droit,
c-à-d, pere[2]=1, pere[3]=1, pere[4]=3, pere[5]=4, pere[6]=5,
 
j'ai fais un essai mais le probleme c'est que les noeuds 5 et 6 se connecte au noeud 4 coté droit
 

Code :
  1. tmp=pere[k+1];
  2. pere[k].right=null;
  3. pere[k-1].left=tmp;


 
j'ai besoin de votre aide, merci.

mood
Publicité
Posté le 19-12-2020 à 22:36:08  profilanswer
 

n°2436780
ink87
01/08/2003
Posté le 30-12-2022 à 16:14:30  profilanswer
 

5400 lectures et 0 réponses. [:fandalpinee]  
 
C'est pas que je n'aurai pas voulu t'aider mais je ne peux pas t'aider. Désolé .. bon courage. :hello:


Message édité par ink87 le 30-12-2022 à 16:15:40

---------------
Avoir un pêt' au casque
n°2436791
rat de com​bat
attention rongeur méchant!
Posté le 30-12-2022 à 19:07:38  profilanswer
 

Ca date de 2020 sa demande, entretemps le noeud a été déplacé j'espère. :o

n°2437049
gilou
Modérateur
Modzilla
Posté le 03-01-2023 à 01:31:34  profilanswer
 

Et en plus, il suffisait de faire
pere(n).left <- pere(n).right  
pere(n).right <- pere(n).left.right
pere(n).left.right <- null
A+,

Message cité 1 fois
Message édité par gilou le 03-01-2023 à 01:33:53

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2437462
ink87
01/08/2003
Posté le 07-01-2023 à 21:58:45  profilanswer
 

rat de combat a écrit :

Ca date de 2020 sa demande, entretemps le noeud a été déplacé j'espère. :o


 [:petoulachi:5] effectivement... Désolé


---------------
Avoir un pêt' au casque
n°2437596
Profil sup​primé
Posté le 09-01-2023 à 22:33:35  answer
 

gilou a écrit :

Et en plus, il suffisait de faire
pere(n).left <- pere(n).right  
pere(n).right <- pere(n).left.right
pere(n).left.right <- null
A+,


 
Ca m'étonnerait parce que si le noeud est à droite, c'est certainement pour une bonne raison.

n°2437768
gilou
Modérateur
Modzilla
Posté le 12-01-2023 à 00:07:53  profilanswer
 

Fais un crobar et tu verras que cela fonctionne (a condition que pere(n).left soit vide au départ, mais c'est ainsi qu'il donne le pb au départ).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2437769
Profil sup​primé
Posté le 12-01-2023 à 00:24:44  answer
 

Salut Gilou !
 
J'insiste !
 
Que tu implémente le plus grand et le plus petit repectivement à gauche et à droite, ou inversement, plus grand que le père a le bon côté et le plus petit l'autre bon côté.


Message édité par Profil supprimé le 12-01-2023 à 00:26:03
n°2439431
gilou
Modérateur
Modzilla
Posté le 01-02-2023 à 12:52:57  profilanswer
 

Comme je t'avais dit, avec un crobar, ça marche visuellement
 


 Avant                 Après
   1               +     1               +
  / \              +    / \              +
 2   3             +   2   3             +
      \            +      / \            +
       4           +     4   5           +
        \          +          \          +
         5         +           6         +
          \        +                     +
           6       +                     +


 


 Avant                  
   1                
  / \              
 2   3              
      \            
       4            
        \          
         5          
          \        
           6      
   
pere(4).left <- pere(4).right  
 
   1                
  / \              
 2   3              
    / \            
   4   4            
    \   \          
     5   5          
      \   \        
       6   6    
 
pere(4).right <- pere(4).left.right
 
   1                
  / \              
 2   3              
    / \            
   4   5            
    \   \          
     5   6          
      \        
       6    
 
pere(n).left.right <- null  
 
   1                
  / \              
 2   3              
    / \            
   4   5            
        \          
         6          
 


 
Mais bon, c'est pas assez rigoureux. Ceci l'est :
m = pere(n) [fixé au départ, même si n bouge ]
m.left <- m.right  
m.right <- null  (a cette étape on a un arbre binaire valide)
m.right <- m.left.right
m.right.pere <- m (et non plus n)
m.left.right <- null (a cette étape on a un arbre binaire valide)
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  déplacer un noeud d'un arbre vers un autre noeud

 

Sujets relatifs
[RESOLU !!] Ajouter noeud fichier xml powershellConversion csv vers json
[RÉSOLU] Envoyer une liste de noms de fichiers vers un exécutable[VBA] UPnP : « Lire sur l’appareil » : comment pousser un fichier?
Macro pour copier un tableau avec mot cle de word vers excel et dispatExporter une feuille excel vers un nouveau classeur en filtrant
Macro copie vers un autre fichierDirectDraw vers DirectGraphics
Script qui récupère données fichier Excel vers document[Résolu] [Wordpress][Config] Erreurs redirections vers sous-dossier
Plus de sujets relatifs à : déplacer un noeud d'un arbre vers un autre noeud


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR