Bonjour,
j'ai besoin d' aide pour la manipulation des arbres n-aire en c++(parcoure,supression )
aidez-moi svp!c'est urgent
merci d'avance
typedef struct _noeud_t{
unsigned id; // l'identifiant d'un noeud
unsigned nb_fils; // le nombre de noeud fils
struct _noeud_t ** fils; // les noeuds fils (un tableau de pointeur sur chaque noeud fils)
} noeud_t;
typedef noeud_t * arbre_t;
void afficher_arbre(arbre_t a){
unsigned i;
printf("noeud %d\n",a->id);
// appel récursif
for(i=0;i<a->nb_fils;++i) afficher_arbre(a->fils[i]);
}
int chercher_noeud(arbre_t a,unsigned id,struct _node_t ** p){
unsigned i,trouve = 0;
// Le noeud courant est le noeud recherché
// *p pointe sur le noeud recherché.
if(id == a->id){
*p = a;
return 1; // trouvé (on remonte la valeur 1)
}
// On visite les noeuds fils du noeud courant à la recherche du noeud id
// Si le noeud cherché si trouve, l'appel récursif basculera la valeur 0
// Si c'est une feuille on n'entre pas dans la boucle for et on remonte la valeur 0
for(i=0;i<a->nb_fils && !trouve;++i) trouve = chercher_noeud(a->fils[i],id);
return trouve;
}
void supprimer(struct noeud_t * a){
unsigned i;
// appel récursif
for(i=0;i<a->nb_fils;++i){
if (a->fils[i]){
supprimer(a->fils[i]);
free(a->fils[i]);
}
}
free(a->fils);
}
Vous n'aimez pas le lifting de Facebook ? Le site Mashable propose cinq étapes pour revenir à l'ancienne présentation du réseau social.
voila je suis entraine de manipuler un arbre(n-aire) qui represente une repertoire qui contient des fichiers,
donc je veux supprimer un noued donner (fichier ou repertoire) mais j'arrive pas a le faire!
pouvez vous m'aide? et merci bqp