2. Una
lista es una estructura de datos
secuencial.
Indicar
objetos reales que se puedan
modelar con dicha estructura.
Listas
de Ordenes de visitas (hospital…)
Lista de aplicaciones
Lista de pacientes
3. Las Listas son secuencias de 0 o más elementos de
un tipo de datos almacenado en memoria. Son
estructuras lineales donde cada elemento de una
lista excepto el primero tiene un único predecesor
y cada elemento de la lista excepto el ultimo
tiene un sucesor.
Gráficamente:
4.
Nombre: TAD Lista
Invariante: n/a
Operaciones:
crearLista()
*/ Devuelve un valor del tipo pila preparado para ser usado
y que contiene un valor de pila vacía. Esta operación es la
misma que la de las listas generales.*/
Precondiciones: N=0
Pos condiciones: Lista creada
5.
insertar(crearLista, x pos)
*/ mediante este método se insertan datos a la Lista
ya creada. Inserta elemento x en pos */
Precondiciones: pos != null
Pos condiciones: insertarLista completado (dato
insertado en Lista)
FIN():
*/Retorna la posición del último elemento, en otras
palabras el “fin” de la lista, también se puede
considerar con el tamaño de la lista. Sí la lista está
vacía retorna una posición invalida que podría ser 1. */
Precondiciones: n/A
Pos condiciones: operación finalizada
6.
Siguiente(pos)
*/con este método se Retorna pos + 1, si pos es
igual o
mayor a FIN(), retorna FIN(). */
Precondiciones: pos != 0
Pos condiciones: retorna pos
anterior(pos)
*/con este método se Retorna pos – 1. */
Precondiciones: pos != 0
Pos condiciones: retorna pos
limpiar(pos)
*/Limpia la lista y Finaliza FIN()*/
Precondiciones: n…n+1, pos = 0
Pos condiciones: Lista vacia…
7. Para
representar en lenguaje C esta estructura
de datos se utilizarán punteros, un tipo de datos
que suministra el lenguaje. Se representará una
lista vacía con la constante NULL. Se puede
definir la lista enlazada de la siguiente manera:
struct lista
{
int clave;
struct lista *sig;
};
8.
e1.- Vectores
Utilizando una estructura de datos estática arreglo para representar e
implementar el TDA LISTAS. Asumamos que los ELEMENTOS que
contiene la LISTA son representados por el tipo ENTERO. La cantidad
de ELEMENTOS que puede contener la LISTA tiene un máximo de n
ELEMENTOS. Por lo que la representación formal de este tipo se define
de la siguiente manera: Tipo LISTA= arreglo [1..n] de ENTEROS; VarL :
LISTA;
9.
Son listas que tienen un enlace con el elemento
siguiente y con el anterior. Una ventaja que
tienen es que pueden recorrerse en ambos
sentidos, ya sea para efectuar una operación con
cada elemento o para insertar/actualizar y borrar.
La otra ventaja es que las búsquedas son algo más
rápidas puesto que no hace falta hacer referencia
al elemento anterior. Su inconveniente es que
ocupan más memoria por nodo que una lista
simple.
10.
A las pilas se les llama también listas LIFO (last-in firstout) o listas “primero en entrar, primero en salir”. En el
TDA Pila no se definen operaciones de posicionamiento en
la pila. Esto es debido a que todas las operaciones de
acceso se realizan en la misma posición, el tope de la pila.
11. Indicar
objetos reales que se puedan
modelar con dicha estructura.
Memoria
de una pc
Caja de objetos
Definiciones de Pila.
Una pila es un caso especial de lista en la cual
todas las inserciones y supresiones tienen lugar
en un extremo determinado llamado tope.
12. Nombre:
TAD Pila
Invariante: n<>0
Operaciones:
crearPila()
*/ Devuelve un valor del tipo pila preparado para
ser usado y que contiene un valor de pila vacía.
Esta operación es la misma que la de las listas
generales.*/
Precondiciones: N=0
Pos condiciones: pila creada
13. insertarPila(crearPila)
*/ mediante este método se insertan datos a la pila
ya creada. Con las pilas se usa el método push para
insertar*/
Precondiciones: pila <> null
Pos condiciones: insertarPila completado (datos
insertados en pila)
borrarPila()
*/
*/con este método se elmina cierta pila de datos
Precondiciones: pila <> null
Pos condiciones: pila eliminada
14.
Una cola es una estructura de datos, caracterizada por
ser una secuencia de elementos en la que la operación
de inserción push se realiza por un extremo y la
operación de extracción pop por el otro. También se le
llama estructura FIFO (del inglés First In First Out),
debido a que el primer elemento en entrar será
también el primero en salir.
Una cola es también una estructura de datos lineal en
donde las eliminaciones se realizan por uno de sus
extremos que normalmente se llama frente, y las
inserciones se realizan por el otro extremo que
normalmente se llama final. A estas estructuras se les
llama FIFO (First In First Out).
15. Nombre:
TAD COLA
Invariante: n/a
Operaciones:
crearCola()
*/ Devuelve un valor del tipo cola preparado para
ser usado y que contiene un valor de pila vacía.
Esta operación es la misma que la de las listas
generales.*/
Precondiciones: N=0
Pos condiciones: cola vacia creada
16. insertarCola(crearCola)
*/ mediante este método se insertan datos a la
cola ya creada. */
Precondiciones: cola <> null
Pos condiciones: datos insertados en cola,
cola insertada.
borrarCola()
*/con este método se elmina cierta cola de
datos */
Precondiciones: cola != 0
Pos condiciones: cola eliminada
17.
Se introduce una forma de simular genericidad en
los TADs de Modula-2 mediante el uso del TAD
ITEM.
En una cola de prioridad los elementos están
ordenados dependiendo de su prioridad, de
manera que esté disponible (para las operaciones
Frente y Extraer) el elemento de máxima
prioridad. En caso de igualdad se sigue la regla
FIFO, de dos elementos con igual prioridad sale
primero el que primero entró. Esto se puede
conseguir bien insertando ordenadamente y
extrayendo el primer elemento, bienDpto
18. public
class Cola {
private static int max = 100;
private Object elementos[];
private int frente, post;
} // fin clase Cola