1. Estructuras de Datos
Prof: Rina Familia
Jorge Luis Maria ~ 10-1333
UNIVERSIDAD IBEROAMERICANA ~ UNIBE
2. Indicar objetos reales que se puedan modelar con dicha estructura
Lista de ordenes
Lista de patrones de cualquier entidad
Lista de elementos
Presentar varias definiciones de la misma
- Una lista es una estructura de datos secuencial.
Una manera de clasificarlas es por la forma de acceder al siguiente
elemento:
- Lista densa: la propia estructura determina cuál es el siguiente
elemento de la lista.
Ejemplo: un array.- Lista enlazada: la posición del siguiente elemento de
la estructura la determina el elemento actual. Es necesario almacenar al
menos la posición de memoria del primer elemento. Además es dinámica,
es decir, su tamaño cambia durante la ejecución del programa.
3. Concepto:
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.
4. Proponer un TAD que modele las LISTAS
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. Relacionar el concepto de VENTANA con el de Lista
Una ventana es un área visual, normalmente de forma
rectangular, que contiene algún tipo de interfaz de
usuario, mostrando la salida y permitiendo la entrada de
datos para uno de varios procesos que se ejecutan
simultáneamente.
Y un Consiste en una secuencia de nodos, en los que se
guardan campos de datos arbitrarios y una o dos
referencias (punteros) al nodo anterior o posterior.
6. Describir las implementaciones de Listas
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;
};
7. 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;
8. e2.- Listas doblemente enlazadas
Una lista enlazada es una de las estructuras de datos
fundamentales, y puede ser usada para implementar otras
estructuras de datos. Consiste en una secuencia de nodos,
en los que se guardan campos de datos arbitrarios y una o
dos referencias (punteros) al nodo anterior o posterior.
El principal beneficio de las listas enlazadas respecto a los
array convencionales es que el orden de los elementos
enlazados puede ser diferente al orden de almacenamiento
en la memoria o el disco, permitiendo que el orden de
recorrido de la lista sea diferente al de almacenamiento.
9. Mecanismos para implementar las listas.
En el lenguaje C se utiliza los llamados punteros para
representar esta estructura de datos.
En java se encuentra un paquete completo en java.util
de donde se pueden utilizar las listas, como un tipo
abstracto de datos, este tipo de estructura de datos
también se utiliza a partir y/o como una interfaz.
10. Indicar objetos reales que se puedan modelar con dicha estructura
Memoria de una pc
Caja de objetos
Concepto
Una pila es un caso especial de lista en la cual todas las inserciones y
supresiones tienen lugar en un extremo determinado llamado tope.
A las pilas se les llama también listas LIFO (last-in first-out) 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. TAD que modele las PILAS
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
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
12. Concepto
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 FirstOut), 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 FirstOut).
Modelación
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 FirstOut), debido a
que el primer elemento en entrar será también el primero en salir.
13. TAD que modele las COLAS.
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
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
14. Particularidades de un TAD COLA con prioridades
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
15. Implementaciones de COLAS con vectores circulares
public class Cola {
private static int max = 100;
private Object elementos[];
private intfrente, post;
} // fin clase Cola