Page
lista_insercion_cabeza
espec ListaGenerica
usa Booleano, Natural;
dominios Lista(Elemento) como Lista;
parametro formal
dominio Elemento
fparametro
operaciones
listaVacia : -> Lista
anhade : Lista Elemento -> Lista
longitud : Lista -> Natural
esVacia : Lista -> Booleano
concatena : Lista Lista -> Lista
parcial cabeza : Lista -> Elemento
parcial borraCabeza : Lista -> Lista
variables
l, l2 : Lista; e: Elemento;
precondiciones
[longitud(l) > 0] cabeza(l)
[longitud(l) > 0] borraCabeza(l)
ecuaciones
longitud(listaVacia) = 0
longitud(anhade(l,e)) = (1 + longitud(l))
esVacia(listaVacia) = TRUE
esVacia(anhade(l,e)) = FALSE
concatena(l,listaVacia) = l
concatena(l,anhade(l2,e)) = anhade(concatena(l,l2),e)
cabeza(anhade(l,e)) = e
borraCabeza(anhade(l,e)) = l
fspec
Last modified: Friday, 26 May 2017, 10:23 AM