Les arbres n-aires en java
Fermé
angel
-
10 avril 2009 à 18:17
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 5 mai 2011 à 18:57
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 5 mai 2011 à 18:57
A voir également:
- Les arbres n-aires en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Java runtime - Télécharger - Langages
2 réponses
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
10 avril 2009 à 21:22
10 avril 2009 à 21:22
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 :
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
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
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^^
Sinon, merci pour le code cpp^^
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
5 mai 2011 à 18:57
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.