Partage

Suppression d'un noeud d'un arbre binaire de recherche

Le 16 novembre 2010 à 20:32:13

Bonsoir les zéros,
Malgré de longues recherches sur le web, je n'ai pas trouvé d'algorithmes, de fonctions, ou d'explications permettant la suppression d'un noeud d'un arbre binaire de recherche.
J'ai bien tenté quelque chose mais ça ne marche pas :
int nbfils ( tnoeud* racine ){
	if ( racine->filsD == NULL && racine->filsG == NULL ){
		return 0;
	}
	if ( racine->filsD != NULL && racine->filsG != NULL ){
		return 2;
	}
	/*else if ( racine->filsD->filsD != NULL || racine->filsD->filsG != NULL || racine->filsG->filsD != NULL || racine->filsG->filsG != NULL ){
		return 3;
	}*/
	else{
		return 1;
	}
}

int recherche ( tarbre racine, int val ){
	

void aff(tarbre racine, long prof)
{
    long i;
    for (i=0; i < prof; i++)
    {
        fputs("|___ ", stdout);
    }
 
    printf("%d\n", racine->val);
    if (racine->filsG) aff(racine->filsG, prof + 1);
    if (racine->filsD) aff(racine->filsD, prof + 1);
}
int main (){
	tarbre racine=NULL;
	racine = ajouterfeuille( racine, 35);
	racine = ajouterfeuille( racine, 25);
	racine = ajouterfeuille( racine, 23);
	racine = ajouterfeuille( racine, 70);
	racine = ajouterfeuille( racine, 32);
	racine = ajouterfeuille( racine, 27);
	racine = ajouterfeuille( racine, 55);
	racine = ajouterfeuille( racine, 43);
	racine = supprimer ( racine, 43 );
	aff(racine, 0);
	return 0;


}
Publicité
Le 16 novembre 2010 à 20:32:13
Le 16 novembre 2010 à 22:55:24

Citation

Malgré de longues recherches sur le web, je n'ai pas trouvé d'algorithmes, de fonctions, ou d'explications permettant la suppression d'un noeud d'un arbre binaire de recherche.


http://fr.wikipedia.org/wiki/Arbre_binaire_de_recherche
C'est vrai, c'est dur de trouver un résultat sur Wikipedia... L'idée est pas très compliquée et bien expliquée. Tente le coup et montre nous ce que tu as fais.
Sinon pour ton code, tu peux me dire où se trouve ta fonction "supprimer" ? Tu peux me dire où est passé le contenu de ta fonction "recherche" ? J'espère que c'est juste une erreur de copier/coller parce que sinon tu te fiches un peu de nous...

Commence donc par lire les explications sur wiki, essaye d'exprimer avec tes propres mots ce que tu dois effectuer comme opérations puis écrit un petit algo avant de te lancer dans le code. Si tu as un problème, pos nous tes questions mais tu dois au moins REELLEMENT essayer.
Le 16 novembre 2010 à 23:22:25

Bonsoir,

Ah, à voir le code que tu postes, je vois donc que j'ai bien fait de prendre le temps de répondre à ton post précédent, auquel tu n'as même pas daigné répondre, et dont apparement tu as fait fi.

Juste pour info, si tu veux que quelqu'un t'aide (et ne t'inquiète pas, ça ne sera plus moi) et comme l'a dit Neodyme précédement, encore faudrait-il que tu envoies le texte de ta fonction 'supprimer'.

Clément.
Le 15 février 2011 à 17:30:04

Salut ! en Fait je m'appelle Abdou et je suis nouveau dans le site en tant qu'inscrit( je me pavanais depuis toujours dans le site anonymement si je puis dire)

J'ai implémenté une procédure de Suppresion d'un noeud dans un arbre suivant un raisonnement itératif
et mon dieu comme j'ai eu du mal, c'est ennuyeux !
D'ailleurs la recursivité est une bonne arbres contre les arbres ( j'éspére qu'il y a pas d'ecolo :p)
Mais l'implementation m'echappe puisque à coup de if je perds la tête
quelqu'un peut il m'éclairer si il vous plait

A bientot
Le 3 février 2014 à 21:22:43

ou se trouve le code de suppression je ne vois que le code de fonction de rechercher ???

Le 3 février 2014 à 21:26:08

Le thread date d'il y a 3 ans ! Je ne pense pas que tu auras ta réponse...

Si tu as une question, fais ton propre thread sur le forum.

Avis aux débutants et aux moins débutants : zCellular : exercice du mois de décembre | Mon dépot Github

Suppression d'un noeud d'un arbre binaire de recherche

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown