Insérer par position

On veut construire, à partir d’un ensemble de n élément, un nouvel ensemble de longueur n+1 comprenant un nouvel élément inséré à une position k. L’algorithme est formé de trois actions:

  • Copie des k-1 premiers élément de l’ensemble dans le nouvel ensemble
  • Insertion du nouvel élément à la position k dans le nouvel ensemble
  • Copie des derniers élément de l’ensemble dans lle nouvel ensemble

Si la position n’existe pas l’algorithme renvoie un nouvel ensemble inchangé.

Remarques
  1. Pour simplifier les algorithmes présentés, on choisi de n’insérer qu’un seul élément à la fois.
  2. On retrouve ici le problème d’accès à un élément d’un ensemble par position.
  3. Les schémas présentés nécessitent la création d’une nouvel ensemble.
Objectif:            -- Insérer un élément à une position donnée

Paramètres:
   ensemble          -- ensemble de départ
   nouvelEnsemble    -- nouvel ensemble comprenant l'insertion d'un élément
   elementAinserer   -- élément à insérer

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 à une position

InsererAlaPosition(ensemble Ensemble
                  , elementAinserer Element
                  , position Entier) -> Ensemble
   nouvelEnsemble >- Ensemble_Element(ensemble) 
   index <- 1
   Si position < 1 
      <- ensemble
   Fin 
   Initialiser(ensemble)
   Enumerer ensemble ET index < position
      index <- index + 1
      Ranger_Element(nouvelEnsemble, Element(ensemble))
   Fin
   Si index = position
      Ranger_Element(nouvelEnsemble, elementAinserer)
      Enumerer ensemble Ranger_Element(nouvelEnsemble, Element(ensemble))
   Fin
   <- nouvelEnsemble
Fin

copyright A rchitectures A pplicatives A vancées A3-Soft

mathAlgo