IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Creation d'un arbe non binaire


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 10
    Par défaut Creation d'un arbe non binaire
    Bonjour

    Voici mon problème: j'aimerais créer un arbre non binaire en java et pouvoir effectuer un parcours en profondeur sur cet arbre

    Pour l'instant voici les différents fichiers que j'ai créé:

    mon fichier avec les racines et les successeurs.la chaine avant les ":" correspond au racine et les chaines après les ":" correspond aux successeurs
    . : mon_repertoire rep tata toto tutu
    mon_repertoire : directory loto lulu
    rep : aaa chato gato rado rato
    directory : auto moto velo
    aaa : fado java torot

    LireFichier.java: qui permet de lire les données depuis mon fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.ArrayList;
    import java.util.Scanner;
     
    public class LireFichier {
    	private ArrayList<String> racines;
    	private ArrayList<String> sucesseurs;
     
    	public LireFichier() {
    		this.racines = new ArrayList<String>();
    		this.sucesseurs = new ArrayList<String>();
    	}
     
    	public LireFichier(String nomFichier) {
    		racines = new ArrayList<String>();
    		sucesseurs = new ArrayList<String>();
     
    		try {
    			File f = new File(nomFichier);
    			Scanner scanner = new Scanner(f);
    			String data[];
    			String racine, sucesseur;
     
    			while (scanner.hasNextLine()) {
    				String line = scanner.nextLine();
     
    				// on sépare la racine et les sucesseurs par le :
    				data = line.split(":");
     
    				// la racine se trouve à l'index 0
    				racine = data[0];
    				racines.add(racine);
     
    				// chaque succeseur doit être séparée par l'espace
    				sucesseur=data[1];
    				sucesseurs.add(sucesseur);
    			}
     
    			scanner.close();
     
    		} catch (FileNotFoundException exception) {
    			System.out.println("File not found");
    		}
     
    	}
     
    	public ArrayList<String> getRacines() {
    		return racines;
    	}
     
    	public void setRacines(ArrayList<String> racines) {
    		this.racines = racines;
    	}
     
    	public ArrayList<String> getSucesseurs() {
    		return sucesseurs;
    	}
     
    	public void setSucesseurs(ArrayList<String> sucesseurs) {
    		this.sucesseurs = sucesseurs;
    	}
     
    	public String toString() {
    		String res = "";
    		for (int i = 0; i < racines.size(); i++) {
    			res = res+racines.get(i)+":"+sucesseurs.get(i)+"\n";
    		}
    		return res;
    	}
    }
    Noeud.java qui permet de créer les différents noeuds de l'arbre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import java.util.ArrayList;
     
     
    public class Noeud {
    	private ArrayList<Noeud> sucesseurs;
    	private String valeur;
     
    	public Noeud(String valeur){
    		this.valeur=valeur;	
    	}
     
    	public Noeud(){
    		this.sucesseurs=new ArrayList<Noeud>();
    		this.valeur="";
    	}
     
    	public ArrayList<Noeud> getSucesseurs() {
    		return sucesseurs;
    	}
     
    	public void setSucesseurs(ArrayList<Noeud> sucesseurs) {
    		this.sucesseurs = sucesseurs;
    	}
     
    	public String getValeur() {
    		return valeur;
    	}
     
    	public void setValeur(String valeur) {
    		this.valeur = valeur;
    	}
     
    	public void ajouter(Noeud sucesseur){
    		sucesseurs.add(sucesseur);
    	}
     
    	public String toString(){
    		String res ="Le noeud "+valeur.toString()+" a pour succeseur ";
    		for(int i=0;i<sucesseurs.size();i++){
    			res.concat(sucesseurs.get(i).toString());
    		}
    		return res;
    	}
    }
    Arbre.java: qui permet de créer l'arbre concerné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    public class Arbre {
     
    	private Noeud racine;
     
    	public Noeud getRacine() {
    		return racine;
    	}
     
    	public void setRacine(Noeud racine) {
    		this.racine = racine;
    	}
     
    	public Arbre(LireFichier fich) {
    		this.racine = new Noeud(fich.getRacines().get(0));
    	}
     
    	public void construireArbre(LireFichier fich) {
     
     
     
    	}
     
    	public void parcours_profondeur() {
     
    	}
    }
    et un fichier main pour faire executer tout cela.

    Comme vous pouvez le constaté je ne sais pas comment faire pour construire l'arbre.merci d'avance pour votre aide.

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 12
    Par défaut
    Salut,

    Je ne suis pas sûr d'avoir bien compris ta question.
    Que veut tu dire par construire ton arbre?

    Ta racine représente ton arbre vu qu'elle contient des successeurs qui ont eux mêmes des successeurs et ainsi de suite. Donc ton arbre est déjà construit vu que tu n'as plus qu'à itérer depuis ta racine.
    Je sais pas si ça peut t'aider mais j'ai déjà eu à faire un arbre (binaire) avec un parcours infixe donc je te joins l'archive.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 10
    Par défaut
    merci pour ton aide

    mais je dois à chaque fois parcourir mon arbre pour changer la racine. j'ai essayé de faire quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import java.util.ArrayList;
     
    public class Arbre {
     
    	private Noeud racine;
     
    	public Noeud getRacine() {
    		return racine;
    	}
     
    	public void setRacine(Noeud racine) {
    		this.racine = racine;
    	}
     
    	public Arbre(LireFichier fich) {
    		this.racine = new Noeud(fich.getRacines().get(0));
    	}
     
    	public void construireArbre(LireFichier fich) {
    		ArrayList<String> racines=fich.getRacines();
    		ArrayList<String> successeurs=fich.getSucesseurs();
    		for(int i=0;i<racines.size();i++){
    			racine.setValeur(racines.get(i));
    			String data[]=successeurs.get(i).split(" ");
    			for(int j=0;j<data.length;j++){
    				Noeud succ=new Noeud(data[j]);
    				racine.ajouter(succ);
    			}
    		}	
    	}
     
    	public void parcours_profondeur() {
     
    	}
     
    	public String toString(){
    		return racine.toString();
    	}
    }
    est ce c'est comme ça qu'il faut s'y prendre?

Discussions similaires

  1. [JTree]recherche dans un arbre (non binaire ?)
    Par biozaxx dans le forum Composants
    Réponses: 3
    Dernier message: 07/05/2013, 13h32
  2. creation d'un repertoire non existant
    Par kayenne77 dans le forum Langage
    Réponses: 6
    Dernier message: 05/08/2009, 12h08
  3. hauteur arbre non binaire, ou placer le return
    Par Acidmaster dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 31/01/2009, 20h10
  4. arbre simple (non binaire)
    Par baert dans le forum C++
    Réponses: 4
    Dernier message: 04/10/2005, 16h54
  5. Creation de table, caractère non reconnu
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/02/2004, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo