Fonction renvoie arbre et supprime plus grand élément
Résolu
Étienne9
Messages postés
1090
Statut
Membre
-
Étienne9 Messages postés 1090 Statut Membre -
Étienne9 Messages postés 1090 Statut Membre -
Bonjour à tous,
J'ai fait un algorithme dmax qui renvoie l'arbre privé de l'élément le plus grand et je voulais savoir si c'était bon.
Merci beaucoup d'avance.
J'ai fait un algorithme dmax qui renvoie l'arbre privé de l'élément le plus grand et je voulais savoir si c'était bon.
Merci beaucoup d'avance.
fonction avec retour Arbre dmax(arbre A) Début si (A est vide) retourner A; sinon si (A.d est vide) retourner A.g; sinon A.d = dmax(A.d); retourner A; fin si fin si Fin
A voir également:
- Fonction renvoie arbre et supprime plus grand élément
- Fonction si et - Guide
- Recuperer message whatsapp supprimé - Guide
- Message supprimé whatsapp - Guide
- Trier du plus petit au plus grand excel - Guide
- Vers quelle adresse web renvoie ce lien - Guide
3 réponses
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
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
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 ?
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 !
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
....