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éé

Insertion d’un élément à une position

insererParPosition ensemble Ensemble
   , elementAinserer Element
   , position Entier 
   -> Ensemble

   nouvelEnsemble <- EnsembleVide ensemble 
   Si position < 1
      <- ensemble
   Fin 
   index <- 1 
   Initialiser ensemble
   Enumerer -> ensemble ET index < position
      index <- index + 1
      element >- Element_Courant ensemble 
      nouvelEnsemble <- element
      Element_Suivant ensemble
   Fin
   Si index = position
      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

A3soft