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éé
Insertion d’un élément avant
InsererParValeurAvant ensemble Ensemble , avantElement Element , elementAinserer Element -> Ensemble existe <- Faux nouvelEnsemble <- [ensemble] Initialiser ensemble Enumerer ensemble ET NON existe element >- Element_Courant ensemble existe <- element = avantElement Si existe nouvelEnsemble <- elementAinserer Element_Suivant ensemble nouvelEnsemble <- element Fin Enumerer ensemble element >- Element_Courant ensemble nouvelEnsemble <- element Element_Suivant ensemble Fin <- nouvelEnsemble Fin
Insertion d’un élément après
InsererParValeurApres ensemble Ensemble , apresElement Element , elementAinserer Element -> Ensemble existe <- Faux nouvelEnsemble <- [ensemble] Initialiser ensemble Enumerer ensemble ET NON existe element <- Element_Courant ensemble existe <- element = apresElement nouvelEnsemble <-element Element_Suivant ensemble Fin Si existe nouvelEnsemble <- elementAinserer Enumerer ensemble element <- Element_Courant ensemble nouvelEnsemble <- element Element_Suivant ensemble Fin Fin <- nouvelEnsemble Fin Traduction des algorithmes en: Swift, Julia
copyright A rchitectures A pplicatives A vancées A3-Soft