+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 8
    Points : 0
    Points
    0

    Par défaut Enumérer un arbre binaire de recherche

    Bonjour, j’essaye en ce moment d’énumérer un arbre binaire de recherche par niveau (en largeur), donc voilà ce que j'ai fait mais je bloques :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    import java.util.Scanner;
    
    public class ABR {
    		
    		ABR Left;
    		ABR Right;
    		int Val;
    		
    		public ABR(int Valeur, ABR L, ABR R){
    			
    			this.Val = Valeur;
    			this.Left = L;
    			this.Right = R;
    			
    		}
    		
    		ABR Enum(){
    				
    				System.out.println(this.Val);
    				
    				if(this.Left != null && this.Right != null){
    					
    					return (this.Left.Enum() && this.Right.Enum());
    					
    				}
    				
    				else if(this.Left != null && this.Right == null){
    					
    					return this.Left.Enum();
    					
    				}
    				
    				else if(this.Left == null && this.Right != null){
    					
    					return this.Right.Enum();
    					
    				}
    				
    				else{
    					
    					System.out.println("L'arbre est vide");
    					
    					return this;
    					
    				}
    				
    			}
    			
    		}
    C'est au niveau de la ligne 23 je ne vois pas comment faire... Vous n'auriez pas une autre manière de le faire s'il vous plaît, merci.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro Dinobogan Shelashyn
    ingénieur
    Inscrit en
    juin 2007
    Messages
    3 661
    Détails du profil
    Informations personnelles :
    Nom : Homme Dinobogan Shelashyn
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 3 661
    Points : 5 783
    Points
    5 783

    Par défaut

    Un parcours en largeur ne se fait pas en récursif mais avec une file d'attente des prochains fils.
    Tu as fait un parcours infixe.

    A part ça, quel est le problème sur ton code ?
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre expérimenté Avatar de LinuxUser
    Inscrit en
    avril 2007
    Messages
    824
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 824
    Points : 576
    Points
    576

    Par défaut

    Plusieurs questions:

    1/ Pourquoi une fonction recursive?
    2/ Pourquoi renvoie-t-elle un arbre?
    3/ Vu qu'elle renvoie un arbre, pourquoi faire un "ET" logique entre deux arbres ?
    Code :
    return (this.Left.Enum() && this.Right.Enum());

  4. #4
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 8
    Points : 0
    Points
    0

    Par défaut

    Oubliez le ABR de Enum je l'avais simplement mis pour compiler le programme...

    Sinon, pensez-vous que je devrai faire un tableau en oubliant bien entendu la recursivité

  5. #5
    Membre expérimenté Avatar de LinuxUser
    Inscrit en
    avril 2007
    Messages
    824
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 824
    Points : 576
    Points
    576

    Par défaut

    Comme la suggérer dinobogan, une file d'attente.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •