2. Objetos reales que se pueden modelar con la estructura lista.
Lista de compra
Lista de invitados
Lista de pacientes.
3. Listas : Es una estructura de datos secuencial , la cual podemos realizarla de manera Estática o
Contigua, con la utilización de punteros homogéneos de elementos con una relación lineal entre ellos.
Una lista es:
Una colección de 0 o mas elementos
Si la lista no tiene elementos, se dice que esta vacía
En una lista, todos los elementos son de un mismo tipo
Son estructuras lineales, es decir:
Sus elementos están colocados uno detrás de otro
Cada elemento de una lista se conoce con el nombre de NODO
Las listas:
Son mucho más flexibles que los arreglos
Permiten trabajo “dinámico” con un grupo de elementos
4. Proponer un TAD que modele las listas
TAD : Tipo de lista
Inv : {t E Z: & (L E Z)
Funciones : ( crear_Lista_vacia (void) >devolver una lista_vacia;
{ pre: L=0
{ post : tipo de listacreada
Persistencia: N/A
5. Relacionar el concepto de ventana con el de lista
Existen cierta relacion entre las ventanas y las lista ya que ambas se
comportan de manaera redimensionadas, que pueden ser maximizadas,
minimizadas y porque no cerradas con el obejetivo permitir la entrada de
datos en sus diferentes funcionmientos a la hora de ejuecutar.
6. La lista enlazada: Es un TDA que nos permite almacenar datos de una forma organizada donde cada
elemento apunta al siguiente excepto el último que no tiene sucesor y el valor del enlace es null.
7. Un TDA lista enlazada, debe tener unos operadores asociados que permitan la
manipulación de los datos.
Insertar: inserta un nodo con dato x en la lista, pudiendo realizarse esta inserción al principio o
final de la lista o bien en orden.
Eliminar: elimina un nodo de la lista, puede ser según la posición o por el dato.
Buscar: busca un elemento en la lista.
Localizar: obtiene la posición del nodo en la lista.
Vaciar: borra todos los elementos de la lista
8. e1.- Vectores
Implementaciones de Listas
En esta representación, los elementos de la lista se sitúan consecutivamente en un vector. Maneja
además dos campos adicionales que indican la longitud actual y la posición de la ventana. 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.
9. Listas doblementes enlazadas.
E2.
Esta lista se caracteriza por que sus nodos contienen dos
punteros, uno hacia el nodo siguiente y otro hacia el nodo
anterior.
10. Mecanismo de implemetacion de las lista en algunos lenguajes.
En el lenguaje pascal : Una lista el orden se establece mediante
punteros. La idea básica es que cada componente de la lista incluya un
puntero que indique donde puede encontrarse el siguiente
componente.
En el lenguaje C se utiliza también los punteros representan las
estructura de datos.
11. Pilas Estructuradas
Lista que tiene por característica que el último de sus elementos es el primero en ser procesado .
12. Objetos reales que se pueden modelar con la estructura Pila
En una torre de discos, para sacar el disco de hasta abajo, tienes que sacar
primero todos los que están arriba de el.
Nube de base de datos de la tecnología como la pila de libros
13. Definiciones de Pilas
Una Pila es una lista de elementos de la cual sólo se puede
extraer el último elemento insertado.
Es una estructura ordenada de elementos en la que se
pueden insertar o remover elementos por un extremo
llamado la cima de la pila.
Una pila es un tipo especial de lista abierta en la que sólo se
pueden insertar y eliminar nodos en uno de los extremos de
la lista.
14. Operaciones Básicas
Las operaciones básicas de la pila son:
Apilar (push(s, i)) - inserta un nuevo elemento a la pila.
Desapilar (pop(s)) - remueve el elemento de la cima de la pila .
E
D D D
C C C C i=D
B B B B
A A A A
Pila antes de Push(s, Pila después de Pila antes de i ← Pila después de i ←
Pop(s)
E) Push(s, E) Pop(s)
15. Evolución de una pila
I=POP(S) PUSH(S,E) PUSH(S,F) I=POP(S) I=POP(S) I=POP(S)
F
D E E E
C C C C C C
B B B B B B B
A A A A A A A
sale D entra E entra F sale F sale E sale C
16. Proponer un TAD que modele las PILAS.
Type: Pilas
Inv { (A E z) & ( y E z)
Funciones)
Produce Error ( y > A ) > devolver tipo_Error;
Crear_ Lista ( y < A ): > devolver lista_ Creada;
{ Pre : Crear una lista vacia;
{ Post: lista_creada para resivir elementos.
17. Implementar las pilas a través de listas y vectores.
Un vector es una buena manera de representar una pila, si se conoce con anterioridad el número máximo
de elementos que va a contener. Sólo se necesita algún medio para marcar el tope de la pila, puesto que
los elementos se colocan en casillas consecutivas a partir de la primera.
La pila pil = se representa con la estructura:
La pila vacía pil = se representa con un cero en el campo que indica la posición del tope:
18. Objetos reales que se pueden modelar con la estructura cola .
Estructura Cola:
19. Contexto Cola:
Una cola es un tipo especial de lista abierta en la que sólo se pueden insertar
nodos en uno de los extremos de la lista y sólo se pueden eliminar nodos en el
otro.
Se entiende por cola una estructura de datos en la que se añaden nuevos ítems
en un extremo y se suprimen ítems viejos en el opuesto.
Es un método de estructuración datos, que permite almacenar y recuperar
datos.
21. Particularidades de un TAD COLA con prioridades
Las cola de prioridades: Son estructura de datos en la que los elementos se atienden en el orden
indicado por una prioridad asociada a cada uno. Si varios elementos tienen la misma prioridad, se
atenderán de modo convencional según la posición que ocupen.
•Este tipo especial de colas tienen las mismas operaciones que las colas , pero con la condición de
que los elementos se atienden en orden de prioridad.
•Ejemplos de la vida diaria serían la sala de urgencias de un hospital, ya que los enfermos se van
atendiendo en función de la gravedad de su enfermedad.
•Entendiendo la prioridad como un valor numérico y asignando a altas prioridades valores
pequeños, las colas de prioridad nos permiten añadir elementos en cualquier orden y recuperarlos
de menor a mayor.
22. Hay 2 formas de implementación:
• Añadir un campo a cada nodo con su prioridad. Resulta conveniente mantener la cola ordenada por
orden de prioridad.
• Crear tantas colas como prioridades haya, y almacenar cada elemento en su cola.
Teniendo en cuanta que :
1. Colas de prioridades con ordenamiento ascendente: en ellas los elementos se insertan de forma
arbitraria, pero a la hora de extraerlos, se extrae el elemento de menor prioridad.
2. Colas de prioridades con ordenamiento descendente: son iguales que la colas de prioridad con
ordenamiento ascendente, pero al extraer el elemento se extrae el de mayor prioridad.
23. Implementaciones de COLAS con vectores circulares.
Si se representa una cola con un vector, las rutinas que implementan las operaciones del TAD
tienen la siguiente complejidad:
La ineficiencia en la operación que elimina un elemento ( elimCola - O( n ) ) se debe a la
necesidad de desplazar todos los elementos de la estructura, para ocupar el lugar liberado después
de sacar el primero. Una posibilidad para evitar este movimiento es marcar los lugares dentro del
arreglo donde comienza y termina la cola.