next up previous contents
Next: 8.2 Implementaciones Up: 8.1 Diseño Previous: 8.1.1 Descripción informal   Contents

8.1.2 Descripción formal

TDA
Lista

Descripción:
El TDA Lista es una secuencia de elementos todos del mismo tipo, uno de los cuales está distiguido como actual.
Invariante:

\begin{displaymath}
\begin{array}{c}
Lista=\left( elem,actual\right) \wedge \\
...
...,elem_{i}\in Nodo\right) \wedge \\
actual\in elem.
\end{array}\end{displaymath}

Operaciones:
 

Operación
Lista

Descripción:
Construlle una lista vacia.
Descripción operacional:
\( construir:\rightarrow Lista \)
Precondición:
\( verdadero \)
Poscondición:
\( lista\in Lista\bigwedge lista=\left( \left\langle \right\rangle ,\right) . \)
Encabezado:
Lista Lista::Lista();
Operación
adicionar

Descripción:
Adiciona un nuevo elemento a la lista.
Descripción operacional:
\( adicionar:Lista\times TipoB\rightarrow Lista \)
Precondición:
\( lista\in Lista\bigwedge nuevo\in TipoB \)
Poscondición:
\( lista=\left\langle elem_{0},\ldots ,elem_{n-e},nuevo\right\rangle \bigwedge actual=nuevo. \)
Encabezado:
void Lista::adicionar(TipoB nuevo);
Operación
retirar

Descripción:
Retira el elemento actual retornandolo y dejando el siguiente como actual.
Descripción operacional:
\( retirar:Lista\rightarrow Lista \)
Precondición:
\( lista\in Lista\bigwedge lista=\left( \left\langle elem_{0},elem_{1},elem_{2},...
..._{i-1},elem_{i},elem_{i+1},\ldots ,elem_{n-1}\right\rangle ,elem_{i}\right) . \)
Poscondición:
\( lista=\left( \left\langle elem_{0},elem_{1},elem_{2},\ldots ,elem_{i-1},elem_...
...ldots ,elem_{n-2}\right\rangle ,elem_{i+1}\right) \bigwedge retirar=elem_{i}. \)
Encabezado:
TipoB Lista::retirar();
Operación
insertar

Descripción:
Inserta el elemento nuevo en la lista después del actual y lo pone como actual.
Descripción operacional:
\( insertar:Lista\times TipoB\rightarrow Lista \)
Prencondición:
\( lista\in Lista\bigwedge lista=\left( \left\langle elem_{0},\ldots ,elem_{i},e...
...1},\ldots ,elem_{n-1}\right\rangle ,elem_{i}\right) \bigwedge nuevo\in TipoB. \)
Poscondición:
\( lista=\left( \left\langle elem_{0},\ldots ,elem_{i},nuevo,elem_{i+1},\ldots ,elem_{n}\right\rangle ,nuevo\right) \).
Encabezado:
void Lista::insertar(TipoB nuevo);
Operación
borrar

Descripción:
Borra el elemento actual de la lista. Si el actual es nulo no hace nada.
Descripción operacional:
\( borrar:Lista\rightarrow Lista \)
Prencondición:
\( lista\in Lista\bigwedge lista=\left( \left\langle elem_{0},elem_{1},elem_{2},...
..._{i-1},elem_{i},elem_{i+1},\ldots ,elem_{n-1}\right\rangle ,elem_{i}\right) . \)
Poscondición:
\( lista=\left( \left\langle elem_{0},elem_{1},elem_{2},\ldots ,elem_{i-1},elem_{i+1},\ldots ,elem_{n-2}\right\rangle ,elem_{i-1}\right) . \)
Encabezado:
void Lista::borrar();
Operación
colprimact

Descripción:
Coloca como actual el primer elemento de la lista.
Descripción operacional:
\( colprimact:Lista\rightarrow Lista \)
Precondición:
\( lista\in Lista\bigwedge lista=\left( \left\langle elem_{0},elem_{1},elem_{2},\ldots ,elem_{i},\ldots ,elem_{n-1}\right\rangle ,elem_{i}\right) . \)
Poscondición:
\( lista=\left( \left\langle elem_{0},elem_{1},elem_{2},\ldots ,elem_{i},\ldots ,elem_{n-1}\right\rangle ,elem_{0}\right) . \)
Encabezado:
void Lista::colprimact();
Operación
colultact

Descripción:
Coloca como como actual el último elemento de la lista.
Descripción operacional:
\( colultact:Lista\rightarrow Lista \)
Precondición:
\( lista\in Lista\bigwedge lista=\left( \left\langle elem_{0},elem_{1},elem_{2}.\ldots ,elem_{i},elem_{i+1},\ldots ,elem_{n-1}\right\rangle ,elem_{i}\right) . \)
Poscondición:
\( lista=\left( \left\langle elem_{0},elem_{1},elem_{2},\ldots ,elem_{i},\ldots ,elem_{n-1}\right\rangle ,elem_{n-1}\right) . \)
Encabezado:
void Lista::colultact();
Operación
colsigact

Descripción:
Coloca el siguiente al atual como actual.
Descripción operacional:
\( colsigact:Lista\rightarrow Lista \)
Precondición:
\( lista\in Lista\bigwedge lista=\left( \left\langle elem_{0},elem_{1},elem_{2},\ldots ,elem_{i},elem_{i+1}\ldots ,elem_{n-1}\right\rangle ,elem_{i}\right) . \)
Poscondición:
\( lista=\left( \left\langle elem_{0},elem_{1},elem_{2},\ldots ,elem_{i},elem_{i+1},\ldots ,elem_{n-1}\right\rangle ,elem_{i+1}\right) . \)
Encabezado:
void Lista::colsigact();
Operación
colxact

Descripción:
Coloca el x-esimo elemento como actual. Si oexiste ese elemento actual queda nulo.
Descripción operacional:
\( coliact:Lista\times N\rightarrow Lista \)
Precondición:
\( lista\in Lista\bigwedge lista=\left( \left\langle elem_{0},elem_{1},elem_{2},...
...s ,elem_{x},\ldots ,elem_{n-1}\right\rangle ,elem_{i}\right) \wedge 0\leq x<n \)
Poscondición:
\( lista=\left( \left\langle elem_{0},elem_{1},elem_{2},\ldots ,elem_{i},\ldots ,elem_{x},\ldots ,elem_{n-1}\right\rangle ,elem_{x}\right) . \)
Encabezado:
void Lista::colxact(int x);
Operación
obtact

Descripción:
Obtiene el elemento actual de la lista.
Descripción operacional:
\( obtact:Lista\rightarrow TipoB \)
Precondición:
\( lista\in Lista\bigwedge lista=\left( \left\langle elem_{0},elem_{1},elem_{2},...
...{i},\ldots ,elem_{n-1}\right\rangle ,actual\right) \bigwedge actual=elem_{i}. \)
Poscondición:
\( obtact=actual. \)
Encabezado:
TipoB Lista::obtact();
TDA
Nodo

Descripción:
Un nodo representa a cado uno de los elementos de la lista.
Invariante:
\( nodo\in Nodo\wedge nodo=\left( inf,sig\right) \wedge sig\in *Nodo\wedge inf\in TipoB \)
Operaciones:
 

Operación
Nodo

Descripción:
Construye un nodo con la información.
Descripción operacional:
\( \begin{array}{cccc}
Nodo: & TipoB & \rightarrow & Nodo
\end{array} \)
Precondición:
\( inf\in TipoB \)
Poscondición:
\( nodo=\left( inf,sig\right) \)
Encabezado:
Nodo::Nodo(TipoB in);
Operación
obtinf

Descripción:
Obtiene la información del nodo.
Descripción operacional:
\( \begin{array}{cccc}
obtinf: & Nodo & \rightarrow & TipoB
\end{array} \)
Precondición:
Poscondición:
\( obtinf=inf \)
Encabezado:
TipoB Nodo::obtinf();
Operación
modinf

Descripción:
Modifica la información del nodo.
Descripción operacional:
\( \begin{array}{cccc}
modinf: & Nodo\times TipoB & \rightarrow & Nodo
\end{array} \)
Precondición:
\( nue\in TipoB \)
Poscondición:
\( nodo=\left( nue,sig\right) \)
Encabezado:
void Nodo::modinf(TipoB nue);
Operación
obtsig

Descripción:
Obtiene el apuntador al siguiente nodo.
Descripción operacional:
\( \begin{array}{cccc}
obtsig: & Nodo & \rightarrow & *Nodo
\end{array} \)
Precondición:
Poscondición:
\( obtsig=sig \)
Encabezado:
Nodo *Nodo::obtsig();
Operación
modsig

Descripción:
Modifica el apuntador al siguiente.
Descripción operacional:
\( \begin{array}{cccc}
modsig: & Nodo\times *Nodo & \rightarrow & Nodo
\end{array} \)
Precondición:
\( si\in *Nodo \)
Poscondición:
\( nodo=\left( ing,si\right) \)
Encabezado:
void Nodo::modsig(Nodo *si);


next up previous contents
Next: 8.2 Implementaciones Up: 8.1 Diseño Previous: 8.1.1 Descripción informal   Contents
Ing. L. Alejandro Bernal R. 2001-01-18
Free Web Hosting