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 :

un objet "arbre" existe-t-il ?


Sujet :

avec Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Points : 52
    Points
    52
    Par défaut un objet "arbre" existe-t-il ?
    Bonjour,

    Je m'interresse depuis peu aux Inteligences Artificielles. Pour réaliser un projet de jeu avec une IA j'ai besoin d'un arbre de jeu : c'est à dire un objet père donne naissance a 0 ou plusieurs objets fils qui a leurs tours donneront naissance a 0 ou plusieurs objets fils, etc... c'est une sorte d'arborescence hiérarchique. Exemple :

    .....................A
    ................../..|..\
    ................/....|....\
    ...............B....C.....D
    ............./...\
    ............E.....F
    .........../..\
    .........G....H

    Existe-t-il une librairie qui fait cela ou vais-je devoir développer cela ?
    Merci de vos réponses.

    Bon développement

  2. #2
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    javadoc --> package java.util --> TreeMap, TreeSet

  3. #3
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par iohack
    javadoc --> package java.util --> TreeMap, TreeSet
    Pas sûr que ces classes aient quelque chose à voir avec la notion d'arbre qui est demandée, si ?

    Le plus simple c'est de créer soi-même les classes, faites en même pas 3 min :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Arbre {
     
       private NoeudArbre racine ;
     
       public Arbre( NoeudArbre racine ) {
          this.racine = racine ;
       }
     
       public NoeudArbre getRacine() {
          return racine ;
       }
    }
    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
    public class NoeudArbre {
       private ArrayList<NoeudArbre> childs ;
     
       public NoeudArbre() {
          childs = new ArrayList() ;
       }
     
       public void addChild( NoeudArbre noeud ) {
          this.childs.add( noeud ) ;
       }
     
       public NoeudArbre getChild( int index ) {
          return childs.get( index ) ;
       }
    }
    A compléter bien sûr suivant tes besoins : suppression de noeud, équilibrage, etc... Mais la base est là.

    ++

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 77
    Points : 77
    Points
    77
    Par défaut
    J'ajouterais pour compléter schniouf qu'il peut être intéressant d'avoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class Arbre extends NoeudArbre {
    C'est cohérant conceptuellement, la racine d'un arbre est un noeud qui ne possède pas de père. De plus, cela évite de dupliquer les propriétés communes des noeuds fils et de la racine.

  5. #5
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    C'est une bonne idée, mais la raison pour laquelle je n'ai pas fait étendre Arbre avec NoeudArbre est que si on procède à ta manière, alors, la racine restera toujours la même. Ca sera la galère pour effectuer une rotation, par exemple !
    Alors que si tu laisse une variable racine dans Arbre (sans étendre), tu pourras modifier cette racine est appliquer des algorithmes sur l'arbre.
    J'espère que tu as compris ce que je voulais dire
    ++

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 878
    Points
    22 878
    Billets dans le blog
    51
    Par défaut
    Moi j'aurai dit plutot javadoc --> package javax.swing.tree --> TreeNode, MutableTreeNode, DefaultMutableTreeNode

    Des classes finallement sans grand rapport de dependance direct avec le JTree et le TreeModel et qui auraient merite d'etres placees dans java.util. Et sinon ce n'est pas non-plus super-complique a faire ca soit-meme.

  7. #7
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Il faut aussi distinguer si la structure de ton arbre a une signification, ou sert juste à améliorer des performances...

    Par exemple, si on veut représenter une arborescence de répertoires/fichiers, la structure a une importance (ici pas question de faire des rotations ou quoi que ce soit).

    Par contre, si on veut représenter un ensemble de nombres entiers, que l'on pourrait tout aussi bien stocker dans une liste, la structure n'a pas d'importance (elle sert uniquement à améliorer les performances d'insertion et de recherche)...

    2 problèmes différents, 2 solutions différentes...

    Pour en savoir plus : Lire les tutoriels et cours de formation Java : http://java.developpez.com/cours/

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