Posez votre question Signaler

Les arbres n-aires en java

angel - Dernière réponse le 5 mai 2011 à 18:57
Bonjour tout le monde,
j'ai besoin d'aide sur le sujet suivant "les arbres n-aires en java".
le fonction de ces arbres sachant qu'a chaque fois on a un nombre different de branches,
comment peut on les construire,les afficher(parcour en proffondeur).
(g chercher mais g pas trouvé becoup de documentations sur ce sujet avec java ).
merci de votre aide.
Lire la suite 

Les arbres n-aires en java »

3 réponses
Réponse
+1
moins plus
En soit, ça n'a rien à voir avec java, ça dépend surtout de la manière dont tu implémentes ta classe d'arbre. A priori pour un arbre n-aire tu vas stocker une liste ou un vecteur de n fils. Il suffit donc d'éffectuer un appel récursif sur chaque nœuds fils pour visiter l'arbre.

En C++ voilà ce que ça donnerait :
#include <vector>
#incldue <iostream>

struct noeud_t{
  int data;
  std::vector<struct noeud_t *> fils;
};

struct arbre_t{
  struct noeud_t *racine;
};

void afficher_noeud_rec(const struct noeud_t *n,unsigned profondeur){
  for(unsigned i=0;i<profondeur;++i) std::cout << '\t'; // indenter le noeud
  std::cout << n->data << std::endl; // écrire la donnée stockée
  for(unsigned i=0;i<n.fils.size();++i){
    afficher_noeud_rec(n.fils[i],profondeur+1); // écrire les noeuds fils
  }
}

void afficher_arbre(const struct arbre_t & a){
  afficher_noeud_rec(a.racine,0);
}

Petite subtilité : en java tout est passé par référence, donc pour que l'indentation fonctionne correctement il faudra faire une variable profondeur intermédiaire.

Bonne chance
Ajouter un commentaire
Réponse
+0
moins plus
NB: en java, tout n'est pas forcément passé par référence (cf. mot-clef 'final' et types élémentaires)

Sinon, merci pour le code cpp^^
mamiemando- 5 mai 2011 à 18:57
Pour moi ça passe juste une const référence et donc ça reste une référence. Ce n'est pas un passage par recopie comme le c et le c++ le permettent.
Ajouter un commentaire
Ce document intitulé « les arbres n-aires en java » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?