1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| typedef struct arbre Arbre;
struct arbre
{
int val;
Arbre *frere;
Arbre *enfant;
};
typedef struct pile Pile;
struct pile
{
Arbre *monArbre;
Pile *suivant;
};
void afficheArbre2(Arbre t, Pile p){
Pile *tempPile=&p;
printf("\nValeur de l'arbre: %i",t.val);
//si je suis un noeud on le place dans la pile
if((t.frere!=NULL)&&(t.enfant!=NULL)){
if(p.monArbre==NULL){
p.monArbre=&t;
}else{
while(tempPile->suivant!=NULL){
tempPile=tempPile->suivant;
}
tempPile->monArbre=&t;
}
}
if(t.frere!=NULL){
afficheArbre2(*t.frere,p);
}else if(t.enfant!=NULL){
afficheArbre2(*t.enfant,p);
}
}
int main(void){
Arbre I = {9, NULL, NULL};
Arbre H = {8, &I, NULL};
Arbre G = {7, &H, NULL};
Arbre F = {6, NULL, &G};
Arbre E = {5, NULL, NULL};
Arbre D = {4, &E, NULL};
Arbre C = {3, NULL, &F};
Arbre B = {2, &C, &D};
Arbre A = {1, NULL, &B};
Pile p = {NULL,NULL};
afficheArbre2(A,p);
return 0;
} |
Partager