Comment créer un arbre de chaîne de caractère
souka925
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
bonjour
j'aurais besoin d'aide pour le problème suivant
j'ai un programme qui manipule un arbre binaire,je peux mettre des caractères mais je veux mettre dans chaque noeud une chaine de caractère comment faire voici mon programme sans main.
j'aurais besoin d'aide pour le problème suivant
j'ai un programme qui manipule un arbre binaire,je peux mettre des caractères mais je veux mettre dans chaque noeud une chaine de caractère comment faire voici mon programme sans main.
#include<stdio.h> #include <stdlib.h> #include <string.h> struct noeud { char val; struct noeud *g; struct noeud *d; }; typedef struct noeud *ab; /*creation dun neoud*/ ab creat(char v, ab ls, ab rs) { ab res; res = (ab) malloc(sizeof(struct noeud)); if (res == NULL) { fprintf(stderr, "Impossible d'allouer le noeud"); return NULL; } res-> val = v; res->g = ls; res->d = rs; return res; } void ajout(ab* pr, char elt) { if (pr==NULL) { printf("Erreur."); exit(1); } else if ((*pr)==NULL) *pr=creat(elt,NULL,NULL); else if ((*pr)->g==NULL) (*pr)->g=creat(elt,NULL,NULL); else if ((*pr)->d==NULL) (*pr)->d=creat(elt,NULL,NULL); else ajout( &((*pr)->g), elt); } void afficheracine(ab n) { if (n != NULL) { printf("%c ", n->val);} }void parcourirArbre(ab n) { if (n != NULL) { //printf("%d ", n->val); if((n->g)!=NULL) printf("%c", n->g->val); if((n->d)!=NULL) printf("%c", n->d->val); parcourirArbre(n->g); } }
A voir également:
- Comment créer un arbre de chaîne de caractère
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Caractère ascii - Guide
- Comment créer un compte gmail - Guide
- Créer un lien pour partager des photos - Guide
1 réponse
Bonjour,
Pour ajouter une chaine, dans ta structure tu rajoutés :
soit char chaine[NB]
Soit char *chaine;
Dans le 1er cas, tu auras juste à faire un strcpy() pour copier la chaine de l'utilisateur dans la structur.
Dans le second cas, tu passes par une allocation dynamique (malloc() / calloc(), free()) dans la fonction ajout() et tu fais ton strcpy()
Pour ajouter une chaine, dans ta structure tu rajoutés :
soit char chaine[NB]
Soit char *chaine;
Dans le 1er cas, tu auras juste à faire un strcpy() pour copier la chaine de l'utilisateur dans la structur.
Dans le second cas, tu passes par une allocation dynamique (malloc() / calloc(), free()) dans la fonction ajout() et tu fais ton strcpy()