Fonction renvoie arbre et supprime plus grand élément
Résolu/Fermé
Étienne9
Messages postés
1022
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
10 mai 2015
-
Modifié par Étienne9 le 16/12/2012 à 13:50
Étienne9 Messages postés 1022 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 10 mai 2015 - 16 déc. 2012 à 17:55
Étienne9 Messages postés 1022 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 10 mai 2015 - 16 déc. 2012 à 17:55
A voir également:
- Fonction renvoie arbre et supprime plus grand élément
- Fonction si et - Guide
- Recuperer message whatsapp supprimé - Guide
- Excel trier du plus grand au plus petit - Guide
- Message supprimé whatsapp - Guide
- Vers quelle adresse web renvoie ce lien - Guide
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
16 déc. 2012 à 14:17
16 déc. 2012 à 14:17
Si l'arbre est trié alors ça semble correct.
Étienne9
Messages postés
1022
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
10 mai 2015
49
16 déc. 2012 à 14:40
16 déc. 2012 à 14:40
Bonjour,
Oui c'est un arbre binaire de recherche.
Et ceci, est-ce correct s'il vous plaît ?
Oui c'est un arbre binaire de recherche.
Et ceci, est-ce correct s'il vous plaît ?
fonction avec retour entier max(Arbre A) Début si (A est vide) retourner +infini sinon si (A.d est vide) retourner A.val; sinon retourner max(A.d); fin si fin si Fin fonction avec retour Arbre supprimer(Arbre A, entier x) Début si (A est vide) retourner A; sinon si (A.val == x) si (A.g est vide) retourner A.d; sinon si (A.d est vide) retourner A.g; sinon A.val = max(A.g); A.g = dmax(A.g); retourner A; fin si fin si sinon si (A.val > x) A.d = supprimer(x,A.d); retourner A; sinon A.g = supprimer(x,A.g); retourner A; fin si fin si fin si Fin
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié par KX le 16/12/2012 à 15:10
Modifié par KX le 16/12/2012 à 15:10
Je trouve maladroit le choix de +infini comme maximum d'un arbre vide, NaN serait plus approprié.
Sinon je ne suis pas d'accord avec cette partie là :
C'est l'inverse :
Sinon je ne suis pas d'accord avec cette partie là :
si (A.val > x) A.d = supprimer(x,A.d); retourner A; sinon A.g = supprimer(x,A.g); retourner A; fin si
C'est l'inverse :
si (x > A.val) A.d = supprimer(x,A.d); retourner A; sinon A.g = supprimer(x,A.g); retourner A; fin si
Étienne9
Messages postés
1022
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
10 mai 2015
49
16 déc. 2012 à 16:08
16 déc. 2012 à 16:08
Merci beaucoup. Par contre pour l'ajout d'un élément dans un AVL pouvez-vous m'aider à faire l'algo s'il vous plaît ?
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
16 déc. 2012 à 16:14
16 déc. 2012 à 16:14
Tu trouveras déjà tout ce qu'il faut sur Wikipedia et autre sites. Depuis 50 ans que cet algorithme existe tu n'es pas le premier à qui on demande de faire ça !
Étienne9
Messages postés
1022
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
10 mai 2015
49
Modifié par Étienne9 le 16/12/2012 à 17:55
Modifié par Étienne9 le 16/12/2012 à 17:55
Je ne m'en sors pas.
Voici ce que j'ai fait :
....
Voici ce que j'ai fait :
fonction avec retour Arbre ajouter_avl(entier x, Arbre A) Début si (A est vide) Arbre B = nouvel Arbre; B.val = x; return B; sinon si (x < A.val) A.g = rééquilibrer(ajouter_avl(x,A.g)); return A; sinon A.d = rééquilibrer(ajouter_avl(x,A.d)); return A; fin si fin si Fin fonction avec retour Arbre rééquilibrer(Arbre A) Début
....