[C] Aide pour un affichage correcte

Fermé
Tintin - 27 mai 2006 à 15:54
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 31 mai 2006 à 00:39
Bonjour,

j'aurais besoin concernant l'écriture d'une boucle pour m'afficher un sommet et ses voisins sur une ligne.
Par exemple si un sommet A à 2 voisins B et C, l'affichage serait :
A,B
A,C


"arbre->liste.nb" => c'est le nb de noeuds distincts de l'arbre
"arbre->liste.elem[i]->tabNoeud.nb" => c'est le nb de voisins

avec cette boucle :
for (i=0, ptDistinct=arbre->liste.elem; i < arbre->liste.nb; i++, ptDistinct++)
     {
       j=0;
       ptVoisin=(*ptDistinct)->tabNoeud.elem;
       printf("%s", Noeud_printf(*ptDistinct));
       while(j<(*ptDistinct)->tabNoeud.nb)
     {
       printf(",%s", Noeud_printf(*ptVoisin));
       j++; 
       ptVoisin++;
       printf("\n");
     }
     }


J'obtiens un affichage de ce type :
A,B
,C


Le sommet A n'est pas réécrit


Est-ce que vous pourriez m'aider?
A voir également:

1 réponse

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
31 mai 2006 à 00:39
C'est normal, il faut stocker toute l'arborecence préalablement parcourue avant chaque affichage d'une feuille !

Exemple
A
|--B
   |--C
   |--D

Lorsque j'affiche la feuille C, j'affiche la branche A,B, puis la feuille C
Lorsque j'affiche la feuille D, j'affiche la branche A,B, puis la feuille D

Bonne chance
0