Modification et affichage des noeuds d'un c++
Ange Angelique
Messages postés
47
Statut
Membre
-
Ange Angelique Messages postés 47 Statut Membre -
Ange Angelique Messages postés 47 Statut Membre -
Bonjour;
Je ne comprend pas ou est le problème;
mon programme affecte un caractére a chaque noeud d'un arbre, si c'est un fils gauche il lui affecte un '0' si c'est le droit un '1'
le problème c'est que dès que je veux qu'il m'affiche ce qu'il a ffecté il me renvoie pas le meme code affecté lors du traitement, je trouve pas l'erreur, je l'ai meme déroulé manuellement, RIEN
svp aidez moi.
fonction qui affecte les caractéres:
// parcours de l'arbre en infixé et ajouter le code
void affich_infixe_croissant(ElementPoids *a)
{
if(a!=NULL)
{
affich_infixe_croissant(a->FilsDroit);
affich_infixe_croissant(a->FilsGauche);
if (a->FilsDroit!=NULL) { strcpy(a->FilsDroit->Code,"0");
printf("cest le fils droit \n\n");
printf(" -> Fils gauche %d ", a->FilsDroit->Num);
printf(" -> Code %s ", a->FilsDroit->Code);
}
if (a->FilsGauche!=NULL) {strcpy(a->FilsGauche->Code,"1");
printf("cest le fils gauche \n\n");
printf(" -> Fils droit %d ", a->FilsGauche->Num);
printf(" -> Code %s ", a->FilsGauche->Code);
}
}
}
// fonction 1 qui affiche l'arbre avec ses codes
// parcours de l'arbre en pretfixé et affichage de l'arbre
void affich_arbre(ElementPoids *a, int profondeur)
{
int i;
if(a!=NULL)
{
affich_arbre(a->FilsDroit, profondeur+1);
for(i=0;i<profondeur;i++)
printf("\t");
printf("%d %s\n",a->Num, a->Code);
affich_arbre(a->FilsGauche, profondeur+1);
}
}
// fonction2 qui affiche l'arbre
void affich_infixe_croissant2(ElementPoids *a)
{
if(a!=NULL)
{
affich_infixe_croissant2(a->FilsDroit);
affich_infixe_croissant2(a->FilsGauche);
if (a->FilsDroit!=NULL) { printf("cest le fils droit \n\n");printf(" -> Fils gauche %d ", a->FilsDroit->Num);printf(" -> Code %s ", a->FilsDroit->Code);}
if (a->FilsGauche!=NULL) {printf("cest le fils gauche \n\n");printf(" -> Fils droit %d ", a->FilsGauche->Num);printf(" -> Code %s ", a->FilsGauche->Code);}
}
}
pour les resultats, dans la fonction qui affecte les codes j'ai dans tous les fils droits des 1 et gauches des 0, mais dans les fonction d'affichage j'ai les memes valeurs de noeuds que le premiere fontion (parce que elle aussi fait de laffichage) mais des codes different.
je trouve pas l'erreur
j'ai vraiment besoin d'aide
Je ne comprend pas ou est le problème;
mon programme affecte un caractére a chaque noeud d'un arbre, si c'est un fils gauche il lui affecte un '0' si c'est le droit un '1'
le problème c'est que dès que je veux qu'il m'affiche ce qu'il a ffecté il me renvoie pas le meme code affecté lors du traitement, je trouve pas l'erreur, je l'ai meme déroulé manuellement, RIEN
svp aidez moi.
fonction qui affecte les caractéres:
// parcours de l'arbre en infixé et ajouter le code
void affich_infixe_croissant(ElementPoids *a)
{
if(a!=NULL)
{
affich_infixe_croissant(a->FilsDroit);
affich_infixe_croissant(a->FilsGauche);
if (a->FilsDroit!=NULL) { strcpy(a->FilsDroit->Code,"0");
printf("cest le fils droit \n\n");
printf(" -> Fils gauche %d ", a->FilsDroit->Num);
printf(" -> Code %s ", a->FilsDroit->Code);
}
if (a->FilsGauche!=NULL) {strcpy(a->FilsGauche->Code,"1");
printf("cest le fils gauche \n\n");
printf(" -> Fils droit %d ", a->FilsGauche->Num);
printf(" -> Code %s ", a->FilsGauche->Code);
}
}
}
// fonction 1 qui affiche l'arbre avec ses codes
// parcours de l'arbre en pretfixé et affichage de l'arbre
void affich_arbre(ElementPoids *a, int profondeur)
{
int i;
if(a!=NULL)
{
affich_arbre(a->FilsDroit, profondeur+1);
for(i=0;i<profondeur;i++)
printf("\t");
printf("%d %s\n",a->Num, a->Code);
affich_arbre(a->FilsGauche, profondeur+1);
}
}
// fonction2 qui affiche l'arbre
void affich_infixe_croissant2(ElementPoids *a)
{
if(a!=NULL)
{
affich_infixe_croissant2(a->FilsDroit);
affich_infixe_croissant2(a->FilsGauche);
if (a->FilsDroit!=NULL) { printf("cest le fils droit \n\n");printf(" -> Fils gauche %d ", a->FilsDroit->Num);printf(" -> Code %s ", a->FilsDroit->Code);}
if (a->FilsGauche!=NULL) {printf("cest le fils gauche \n\n");printf(" -> Fils droit %d ", a->FilsGauche->Num);printf(" -> Code %s ", a->FilsGauche->Code);}
}
}
pour les resultats, dans la fonction qui affecte les codes j'ai dans tous les fils droits des 1 et gauches des 0, mais dans les fonction d'affichage j'ai les memes valeurs de noeuds que le premiere fontion (parce que elle aussi fait de laffichage) mais des codes different.
je trouve pas l'erreur
j'ai vraiment besoin d'aide
A voir également:
- Modification et affichage des noeuds d'un c++
- Suivi des modifications word - Guide
- Affichage double ecran - Guide
- Modification dns - Guide
- Windows 11 affichage classique - Guide
- Logiciel modification pdf - Guide