Insérer par valeur

Swift

Rappels
Primitives Schema présentes dans les traductions ci-dessous

Ensemble_Element()    Création d'un ensemble vide
Initialiser(ensemble) Initialisation d'une itération d'ensemble
Enumeration(ensemble) Expression booléenne de contrôle de l'itération
Element(ensemble)     Renvoie l'élément courant et positionne sur élément suivant
Ranger_Element(ensemble,element) Ajoute un élément dans ensemble
Lister(ensemble)      Liste les élément d'un ensemble
File                  Création d'un ensemble

Insérer un élément avant une valeur dans un ensemble séquentiel

func insererParValeurAvant <_Element>(_ ensemble: Ensemble<_Element>
                                     ,_ avantElement: _Element
                                     ,_ elementAinserer: _Element) 
                                     -> Ensemble<_Element> 
{
   var existe = false
   let nouvelEnsemble = Ensemble_Element(ensemble)
   Initialiser(ensemble)
   while Enumeration(ensemble) && !existe {
      let element = Element(ensemble)
      existe = element == avantElement
      if existe { Ranger_Element(nouvelEnsemble,elementAinserer) }
      Ranger_Element(nouvelEnsemble,element)
   }
   while Enumeration(ensemble) { 
      Ranger_Element(nouvelEnsemble,Element(ensemble)) 
   }
   return nouvelEnsemble
}

Insérer un élément après une valeur dans un ensemble séquentiel

func insererParValeurApres <_Element>(_ ensemble: Ensemble<_Element>
                                     ,_ apresElement: _Element
                                     ,_ elementAinserer: _Element) 
                                     -> Ensemble<_Element> 
{
   var existe = false
   let nouvelEnsemble = Ensemble_Element(ensemble)
   Initialiser(ensemble)
   while Enumeration(ensemble) && !existe {
      let element = Element(ensemble)
      existe = element == apresElement
      Ranger_Element(nouvelEnsemble,element)
   }
   if existe {
      Ranger_Element(nouvelEnsemble,elementAinserer)
      while Enumeration(ensemble) { 
         Ranger_Element(nouvelEnsemble,Element(ensemble))
      }
   }
   return nouvelEnsemble
}

Test

func Test_Inserer() {
   Afficher("File: Les éléments de nombres ")
   let nombres = File(30,9,111,12,115, 13,14,15,111,100)
   Lister(nombres)
   
   print("")
   var elementAInserer = 999
   var apresElement = 111
   print("Inserer element \(elementAInserer) 
          apres element \(apresElement)")
   var ensemble = insererParValeurApres(nombres,apresElement,elementAInserer)
   Lister(ensemble)
   
   print("")
   elementAInserer = 999
   apresElement = 100
   print("Inserer element \(elementAInserer) 
         apres element \(apresElement)")
   ensemble = insererParValeurApres(nombres,apresElement,elementAInserer)
   Lister(ensemble)

   print("")
   elementAInserer = 999
   apresElement = 8
   print("Inserer element \(elementAInserer) 
         apres element \(apresElement)")
   ensemble = insererParValeurApres(nombres,apresElement,elementAInserer)
   Lister(ensemble)

   print("")
   elementAInserer = 999
   var avantElement = 111
   print("Inserer element \(elementAInserer) 
          avant element \(avantElement)")
   ensemble = insererParValeurAvant(nombres,avantElement,elementAInserer)
   Lister(ensemble))

   print("")
   elementAInserer = 999
   avantElement = 30
   print("Inserer element \(elementAInserer) 
         avant element \(avantElement)")
   ensemble = insererParValeurAvant(nombres,avantElement,elementAInserer)
   Lister(ensemble)
}

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