Este documento describe las características y operaciones de las listas, pilas y colas. Las listas son estructuras de datos secuenciales que almacenan elementos de forma lineal. Las pilas y colas son casos especiales de listas, donde las pilas siguen el orden LIFO y las colas el orden FIFO. Todas estas estructuras permiten insertar y eliminar elementos de forma eficiente.
2. Indicar objetos reales que se puedan modelar
con dicha estructura.
o Lista de pacientes
o Listas de Ordenes de visitas (hospital…)
o Lista de aplicaciones
3. Una manera de clasificarlas es por la forma de
acceder al siguiente elemento
Una lista es una estructura de datos secuencial.
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. 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. 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.
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.
8. La relación es que con ambos términos nos
referimos a manipulación de datos sin importar el
orden de los mismos, solo el acceso y su
modificación.
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.
9. Listas doblemente enlazadas
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.
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.
10. 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. Basicamente tenemos estas operaciones:
Pop: remueve la data del tope de la pila.
Push: inserta la data en el tope de la pila.
12. Son estructuras utilizadas muy a menudo como
herramientas de programación de tipo LIFO
(Last in-First out)
Permiten el acceso solo a un elemento a la vez:
el último elemento insertado
La mayoría de los procesadores utilizan una
arquitectura basada en pilas
13. Nombre: TAD Pila
Invariante: n<>0
Operaciones:
crearPila()
o */ 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.*/
o Precondiciones: N=0
o Pos condiciones: pila creada
14. insertarPila(crearPila)
o */ mediante este método se insertan datos a la pila ya
creada. Con las pilas se usa el método push para insertar*/
o Precondiciones: pila <> null
o Pos condiciones: insertarPila completado (datos
insertados en pila)
borrarPila()
o */con este método se elmina cierta pila de datos */
o Precondiciones: pila <> null
o Pos condiciones: pila eliminada
15. 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).
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.
16. o Desencolar: elimina un dato del principio de la cola
o Encolar: agrega un nuevo dato al final de la cola
17. Encolar y Desencolar se realizan en tiempo
constante; No es necesario hacer ninguna
comparación.
El tiempo de ejecución de las operaciones
primarias de una colas no depende del tamaño de
la cola
18. Nombre: TAD COLA
Invariante: n/a
Operaciones:
crearCola()
o */ 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.*/
o Precondiciones: N=0
o Pos condiciones: cola vacia creada
19. insertarCola(crearCola)
o */ mediante este método se insertan datos a la cola ya
creada. */
o Precondiciones: cola <> null
o Pos condiciones: datos insertados en cola, cola
insertada.
borrarCola()
o */con este método se elmina cierta cola de datos */
o Precondiciones: cola != 0
o Pos condiciones: cola eliminada