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

AWT/Swing Java Discussion :

Dessiner un arbre binaire en java?


Sujet :

AWT/Swing Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Dessiner un arbre binaire en java?
    Bonjour,

    Voilà je suis entrain de concevoir une petite application en java sur les AVL avec interface graphique et représentation dynamique de l'arbre sur un Canvas, dans le cadre d'un projet pour les cours.

    Et j'ai un petit soucis pour dessiner mon arbre, j'ai l'impression que ca peut se faire recurssivement mais je n'y arrive pas, je n'arrive pas à determiner la position des noeuds fils en fonction de leur noeud pére...je suppose que la hauteur de l'arbre intervient dans tout ca mais à force de me creuser la tête je commence à m'emmeler les pinceaux :p

    Voilà donc si quelqu'un pouvait m'aiguiller ca m'aiderait beaucoup ^^

    Merci d'avance !

    PS : Je savais pas trop ou poster ma question, dslé si je me suis trompé d'endroit

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    j'aimerai bien travailler avec toi cher ami, je ne suis pas très fort en programmation et j'ai eu mon premier cour de ABR et AVL la semaine dernière,

    je te propose d'envoyer un bout de code,pour qu'on puisse travailler dessus et pour voir les lacunes ( s'il y en a ). Je vais envoyer quelque chose le plus tôt possible ...


  3. #3
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,

    pour dessiner un arbre dans un Canvas ou un JPanel, il y a plusieurs choses à prendre en compte. Je suppose que tu as 2 classes : Noeud et Arbre (ça peut se faire avec seulement la classe Noeud, mais bon).

    La classe Arbre doit permettre de calculer la largeur et la hauteur totales nécessaires au dessin de ton arbre binaire (en fonction de la profondeur de l'arbre, et du remplissage si t'es motivé). Elle place aussi le premier noeud (en haut au milieu, je pense)

    La classe Noeud doit permettre d'avoir l'intitulé du noeud (getName), et d'accéder aux fils droit et gauche (getRightChild getLeftChild). Ensuite ta méthode ressemble à ç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
    public void drawNode(Graphics g, Noeud n, int x, int y) {
     
      int textX, textY;
      // on calcule textX et textY en fonction de x, y et de la taille du texte
      // voir les classes Font et FontMetrics
      ...
      g.drawString(n.getName(), textX, textY);
     
      if(n.getRightChild() != null) {
        g.drawLine(x + textHeight, y, x + 100, y + 100);
        // moi je dis 100, 100 comme ça, ça pourrait être autre chose
        drawNode(g, n.getRightChild(), x + 100, y + 100);
      }
     
      if(n.getLeftChild() != null) {
        g.drawLine(x + textHeight, y, x - 100, y + 100);
        drawNode(g, n.getLeftChild(), x - 100, y + 100);
      }
    }
    Comme ça l'objet de type Arbre appelle drawNode(g, root, monCanvas.getWidth() / 2, 0), et ça lance récursivement l'arbre entier.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. Dessiner un arbre binaire
    Par lamane dans le forum Débuter
    Réponses: 0
    Dernier message: 26/02/2014, 12h49
  2. Commande récursive pour dessiner un arbre binaire.
    Par IKota dans le forum Programmation (La)TeX avancée
    Réponses: 2
    Dernier message: 30/05/2010, 22h41
  3. une méthode de représentation arbre binaire en java
    Par bilred dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 23/04/2009, 13h21
  4. Les arbres binaire en java
    Par vincem35 dans le forum Graphisme
    Réponses: 0
    Dernier message: 18/10/2008, 18h48
  5. Les arbres binaire en java
    Par vincem35 dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2007, 19h44

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