On veut construire, à partir d’un ensemble de n élément, une nouvel ensemble de longueur n+1 comprenant un nouvel élément inséré avant ou après un élément donné. L’algorithme est formé de trois actions:
- Copie des k-1 premiers élément de l’ensemble dans un nouvel ensemble
- Insertion de l’élément choisi dans le nouvel ensemble
- Copie des derniers éléments de l’ensemble dans un nouvel ensemble
Si la position n’existe pas l’algorithme renvoie un nouvel ensemble inchangé.
Remarques.
- Pour simplifier les algorithmes présentés, on choisi de n’insérer qu’un seul élément à la fois.
- On retrouve ici le problème d’accès par valeur à un élément d’un ensemble.
- Les schémas présentés nécessitent la création d’une nouvel ensemble.
Objectif: -- Insérer un élément après ou avant l'élément sélectionné Paramètres: ensemble -- ensemble de départ nouvelEnsemble -- nouvel ensemble comprenant l'insertion d'un élément avantElement -- élément à insérer avant apresElement -- élément à insérer après Résultat -- Le nouvel ensemble, si l'insertion n'est pas possible -- il contient les élément de l'ensemble de départ Remarque: -- L'ensemble de départ n'est pas modifié. -- Un nouvel ensemble est créé
Traductions: Swift, Julia
Insertion d’un élément avant
insererParValeurAvant(ensemble Ensemble , avantElement Element , elementAinserer Element) -> Ensemble existe <- Faux nouvelEnsemble <- Ensemble_Element(ensemble) Initialiser(ensemble) Enumerer ensemble ET NON existe element >- Element(ensemble) existe <- element = avantElement Si existe Ranger(nouvelEnsemble,elementAinserer) Ranger_Element(nouvelEnsemble,element) Fin Enumerer ensemble Ranger_Element(nouvelEnsemble,Element(ensemble)) <- nouvelEnsemble Fin
Insertion d’un élément après
insererParValeurApres (ensemble Ensemble , apresElement Element , elementAinserer Element) -> Ensemble existe <- Faux nouvelEnsemble >- Ensemble_Element(ensemble) Initialiser(ensemble) Enumerer ensemble ET NON existe element <- Element(ensemble) existe <- element = apresElement Ranger_Element(nouvelEnsemble,element) Fin Si existe Ranger(nouvelEnsemble, elementAinserer) Enumerer ensemble Ranger_Element(nouvelEnsemble,Element(ensemble)) Fin <- nouvelEnsemble Fin
copyright A rchitectures A pplicatives A vancées A3-Soft