cs_marocweb
Messages postés8Date d'inscriptionsamedi 5 mai 2007StatutMembreDernière intervention27 mai 2007
-
26 mai 2007 à 00:31
cs_marocweb
Messages postés8Date d'inscriptionsamedi 5 mai 2007StatutMembreDernière intervention27 mai 2007
-
27 mai 2007 à 17:27
bonjour tout le monde,
j'ai un arbre déja crée en mémoire en utilisant les listes chainées et cela comme suit :
Chaque noeud point vers une liste chainée qui contient un ou plusieurs éléments selon le nombre de sous-noeuds, chaque élément point lui même sur un autre noeud... ça passe comme ça..
maintenant la focntion que je cherche doit afficher l'arbre comme suit :
Ex :
The_Guardian
Messages postés317Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention19 octobre 20071 26 mai 2007 à 10:16
Salut,
Avec la récursion c'est pas difficile.
affichageArbre( liste L, decalage D )
pourtout element E de la liste L faire
afficher noeud(E) avec un decalage de D espaces
affichageArbre( sous-liste de E, D+2 )
finpourtout
The_Guardian
Messages postés317Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention19 octobre 20071 26 mai 2007 à 13:28
RE
L'utilite de la variable D c'est d'afficher avec un decalage qui change selon le niveau dans l'arbre, c'est plus joli si au niveau 3 y'a 6 espaces que si y'en avait aucun (sinon on voit pas la structure d'arbre)
=
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_marocweb
Messages postés8Date d'inscriptionsamedi 5 mai 2007StatutMembreDernière intervention27 mai 2007 26 mai 2007 à 14:49
C'est exactement ce que je cherche, la fonction que j'ai développé affiche uniquement l'arbre comme ça :
Noeud1
2
3
4
5
6
sans tabulation ni espace !
voila la fonction :
void affichage(dossier *P){
puts(P->nom);
if(P->racines!=NULL){
R=P->racines;
while(R!=NULL){
affichage(R->pcible);
R=R->next;
}
}
}
J'ai pas réussi a integré une variable qui change selon la profondeur. pouvez vous svp me dire comment ?
voila les sctructures utilisées pour définir l'arbre et ses racines :
The_Guardian
Messages postés317Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention19 octobre 20071 27 mai 2007 à 11:06
RE
OK y'a deux trucs a faire :
- mettre les variables "i" et "R" en local dans la fonction
- s'assurer que la liste initiale est bien creee comme il faut
sinon c'est bon
cs_marocweb
Messages postés8Date d'inscriptionsamedi 5 mai 2007StatutMembreDernière intervention27 mai 2007 27 mai 2007 à 14:53
Je crois que l'arbre est mal construi dès le début ce qui donne l'affichage de l'arbre comme ça.
j'ai ajouté une variable niveau à la structure des racines pour déterminer la profondeur courante; et lors de l'affichage je voi que 1 1 1 1 1 1 donc je crois que lors de la création tout les noeud sont des sous noeud du noeud pére.
The_Guardian
Messages postés317Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention19 octobre 20071 27 mai 2007 à 17:03
Re
Fautre mettre les réponses validées en verte quand tu penses que c'est ok. Ca fait un peu le ménage dans le forum, on voit qui n'a plus besoin d'aide ainsi :)