Especificación e implementación de pilas en Pascal: TAD Pila con ejemplos

Informática1,78 KB

Especificación de Pilas

Parámetros genéricos

Tipos

TipoElemento

Fin parámetros genéricos

Tipos

TipoPila

Operaciones

Constructoras generadoras

CrearPilaVacia : → TipoPila

Apilar : TipoElemento × TipoPila → TipoPila

Observadoras selectoras

parcial Cima : TipoPila → TipoElemento

Observadoras no selectoras

EsPilaVacia : TipoPila → booleano

IgualPila : TipoPila × TipoPila → booleano

Constructoras no generadoras

parcial Desapilar : TipoPila → TipoPila

CopiarPila : TipoPila → TipoPila

Variables

pila, pila2, pila3 : TipoPila;
elemento, elem : TipoElemento;

Ecuaciones de definitud

Def(Cima(Apilar(elemento, pila)))
Def(Desapilar(Apilar(elemento, pila)))

Ecuaciones

EsPilaVacia(CrearPilaVacia) = CIERTO
EsPilaVacia(Apilar(elemento, pila)) = FALSO
Cima(Apilar(elemento, pila)) = elemento
Desapilar(Apilar(elemento, pila)) = pila
CopiarPila(CrearPilaVacia) = CrearPilaVacia
CopiarPila(Apilar(elemento, pila)) = Apilar(elemento, CopiarPila(pila))
IgualPila(CrearPilaVacia, pila2) = EsPilaVacia(pila2)
IgualPila(Apilar(elemento, pila), pila2) = SI EsPilaVacia(pila2) → FALSO | SI pila2 = Apilar(elem, pila3) → (elemento = elem) Y IgualPila(pila, pila3)

Implementación en Pascal

Interface

USES TElemento;

TYPE
TipoPila = ^TipoNodo;
TipoNodo = RECORD
dato: TipoElemento;
siguiente: TipoPila
END; (* registro *)

PROCEDURE CrearPilaVacia(VAR pila: TipoPila);
(* POST:

Descargar

PDF Word HTML