G. Falquet, CUI, Université de Genève 1 de 26
Collections
Conteneurs de données avec différents protocoles d’accès
Séquences
Listes binaires
Ensembles et multi-ensembles / itérateurs
Fonctions / associations
Piles / récursivité
Files / simulation, coopération
• Vue externe (opérations, définition abstraite)
• Techniques d’implémentations (performances)
G. Falquet, CUI, Université de Genève 2 de 26
Séquence
• Collection d’objets placés selon un ordre.
• Chaque objet possède une position.
• On place et enlève les éléments selon leur position.
Séquences et chaines (de caractères) ?
• même structure : <a1, a2, …, an> , {1 → a1, 2 → a2, …, n → an}
• opérations différentes
– chaines : recherche de sous-chaines, comparaison lexicale.
– séquences : recherche d’un élément
G. Falquet, CUI, Université de Genève 3 de 26
2. Spécification algébrique - opérations
Constructeurs
vide crée une séquence vide
inserer(e, i, s) insère un élément e à la position i dans s
supprimer(i, s) supprime l’élément à la position i
remplacer(e, i, s) remplace l’élément à la position i par e
Sélecteurs
element(i, s) l’élément à la position i dans s
indice(f, s) position du premier élément égal à f
indice-apres(f, d, s) position du premier élément égal à f après la position d
longueur(s) nombre d’éléments dans s
G. Falquet, CUI, Université de Genève 4 de 26
Axiomes
longueur(vide) == 0
longueur(inserer(e, i, s) == longueur(s)+1
longueur(supprimer(i, s) == longueur(s)–1;
supprimer(i, inserer(e, i, s) == s;