Implémentation d'un séquence impérative sous forme de tableau

Il est également possible d'implémenter une séquence fonctionnelle sous la forme de tableau. Comme avec la liste, afin de préserver l'identité de la séquence lorsque le tableau doit changer de taille, il faut introduire un objet en-tête.

Pseudo-code

On suppose que l'objet en-tête accepte les opérations suivantes :
copier-tableau(tableau t1, tableau t2, entier n)
  pour i allant de 0 jusqu'à n - 1
    t2[i] <- t1[i]
insérer-tableau(objet obj, tableau t, entier position, entier dernier)
  pour i allant de dernier jusqu'à position 
    t[i + 1] <- t[i]
  t[position] <- obj
void
insérer(objet obj, séquence s, entier position)
  assert(position <= taille(s))
  si taille(s) = taille-tableau(s)
  alors 
     t <- allouer-tableau(2 * taille-tableau(s))
     copier-tableau (éléments(s), t, taille(s) - 1)
     éléments(s) <- t
  insérer-tableau(obj, éléments(s), position)
  taille(s) <- taille(s) + 1
supprimer-tableau(objet obj, tableau t, entier position, entier dernier)
  pour i allant de position jusqu'à dernier - 1
    t[i] <- t[i + 1]
void
supprimer(sequence s, entier position )
  assert(position < taille(s))
  si taille(s) < taille-tableau(s) / 4
  alors 
    t <- allouer-tableau(taille-tableau(s) / 2)
    copier-tableau(éléments(s), t, taille(s) - 1)
    éléments(s) <- t
  supprimer-tableau(obj, éléments(s), position)
  éléments(s)[taille(s)] <- nil
  taille(s) <- taille(s) - 1