Listas, Pilas y Colas
Listas, Pilas y Colas
Listas, Pilas y Colas
Carrera: Informática
Sección: 28 2 A1
Materia: Estructura de Datos
Profesora: Bettmar Ovalles
Christian Quiñones
20.913.650.
Caracas, 28 de Junio de 2022
INDICE
- INTRODUCCIÓN…………………………………………………………………1
- ¿QUÉ SON LAS LISTAS, PILAS Y COLAS?..............................................2
- ¿QUÉ ES UNA LISTA ENLAZADA DEL TIPO PILA?.................................3
- CARACTERÍSTICAS DE UN TDA DE TIPO PILA……………………………4
- EJEMPLO DE IMPLEMENTACIÓN DE UN TDA DE TIPO PILA EN C++ ..5
- IMPORTANCIA Y VENTAJAS DE UN TDA DE TIPO PILA…………………7
- ¿QUÉ ES UNA LISTA ENLAZADA DEL TIPO COLA?...............................8
- CARACTERÍSTICAS DE UN TDA DE TIPO COLA………………………….9
- EJEMPLO DE IMPLEMENTACIÓN DE UN TDA TIPO COLA EN C++…..10
- IMPORTANCIA Y VENTAJAS DE UN TDA DE TIPO COLA……………...12
- ¿QUÉ ES UNA LISTA ENLAZADA DEL TIPO LISTA?.............................13
- CARACTERÍSTICAS DE UN TDA DE TIPO LISTA………………………...14
- EJEMPLO DE IMPLEMENTACIÓN DE UN TDA TIPO LISTA EN C++….15
- IMPORTANCIA Y VENTAJAS DE UN TDA DE TIPO LISTA……………..19
- CONCLUSIONES……………………………………………………………….20
- BIBLIOGRAFÍA…………………………………………………………………21
INTRODUCCION
En este trabajo se dará un breve repaso sobre las estructuras de datos del tipo
pila, cola y lista. Se identificará que tipos de vectores son y cómo funcionan,
indicando también en que consiste cada uno de estos tipos, cuales son sus
características e importancia y como podemos implementar cada uno de estos
tipos de estructuras a nuestros programas.
1
¿QUÉ SON LAS LISTAS, PILAS Y COLAS?
Estas son estructuras de datos definidas como Listas Enlazadas, las cuales
son Tipos de Datos Abstractos (TDA) que nos permite almacenar datos de una
forma organizada, al igual que los vectores, pero, a diferencia de estos, esta
estructura es dinámica, por lo que no tenemos que saber "a priori" los elementos
que puede contener.
En una lista enlazada, cada elemento apunta al siguiente excepto el último que
no tiene sucesor y el valor del enlace es null. Por ello los elementos son registros
que contienen el dato a almacenar y un enlace al siguiente elemento. Los
elementos de una lista, suelen recibir también el nombre de nodos de la lista.
Para que esta estructura sea una lista enlazada, debe tener unos operadores
asociados que permitan la manipulación de los datos que contiene. Los
operadores básicos de una lista enlazada son:
- 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
2
¿QUÉ ES UNA LISTA ENLAZADA DEL TIPO PILA?
Para utilizar el Tipo de Dato Abstracto (TDA) Pila, el mismo nos proveerá de
una serie de procedimientos que nos permitirán acceder o agregar elementos. Los
siguientes son los procedimientos básicos que debe contener una pila:
- Crear (constructor): crea la pila vacía.
- Tamaño (size): regresa el número de elementos de la pila.
- Apilar (push): añade un elemento a la pila.
- Desapilar (pop): lee y retira el elemento superior de la pila.
- Leer último (top o peek): lee el elemento superior de la pila sin retirarlo.
- Vacía (empty): devuelve cierto si la pila está sin elementos o falso en caso
de que contenga alguno.
3
Para la implementación de la pila, es necesario que el tipo de dato contenga
una referencia al nodo tope de la pila. Luego, cada nodo tendrá una referencia al
nodo que le siguiente. De esta manera se formará una cadena con inicio en el
nodo tope y que finaliza en el último elemento de la pila, cuyo nodo no referenciará
a ningún elemento.
CARACTERÍSTICAS
4
EJEMPLO
Figura 4.1 Esquema de la Implementación del TDA pila utilizando punteros
en C++
5
Figura 4.2
6
Figura 4.3
Para utilizar el Tipo de Dato Abstracto (TDA) Pila, el mismo nos proveerá de
una serie de procedimientos que nos permitirán acceder o agregar elementos. Los
siguientes son los procedimientos básicos que debe contener una pila:
- Crear: se crea la cola vacía.
- Encolar: se añade un elemento a la cola. Se añade al final de esta.
- Desencolar: (sacar, salir, eliminar): se elimina el elemento frontal de la
cola, es decir, el primer elemento que entró.
- Frente: (consultar, front): se devuelve el elemento frontal de la cola, es
decir, el primer elemento que entró.
8
Para implementar una cola será necesario que la estructura contenga una
referencia al primer nodo de la cola y otra al último nodo. Luego, desde el primer
nodo de la cola, se irán encadenando los demás nodos, hasta el último.
CARACTERÍSTICAS
9
EJEMPLO
10
Figura 6.2
11
Figura 6.3
12
¿QUÉ ES UNA LISTA ENLAZADA DEL TIPO LISTA?
CARACTERÍSTICAS
14
EJEMPLO
15
Figura 9.2
16
Figura 9.3
17
Figura 9.4
18
IMPORTANCIA Y VENTAJAS DEL TDA LISTA
Como el nombre indica, las listas pueden ser usadas para almacenar una lista
de registros.
Debido a que, en la informática, las listas son más fáciles de realizar que los
Conjuntos, un conjunto finito en sentido matemático se puede implementar como
una lista con restricciones adicionales, es decir, duplicar los elementos no está
permitido y su orden es irrelevante. Si la lista está ordenada, esto acelera la
determinación de si un elemento está en el conjunto, pero, a fin de garantizar el
orden, se requiere más tiempo para añadir nueva entrada a la lista. En
implementaciones eficientes, sin embargo, los conjuntos se implementan
utilizando árboles binarios de búsqueda balanceados o tablas hash, en lugar de
una list. Las listas pueden ser manipuladas utilizando iteración o recursión. La
primera forma es a menudo preferida en lenguajes de programación imperativos,
mientras la última es la norma en lenguajes funcionales.
19
CONCLUSIONES
20
BIBLIOGRAFÍA
Referencias Bibliográficas:
- Lic. Gustavo Carolo. (2005). Algoritmos y Programación II. Guía de
Estudio – Lista, Pilas y Colas.
- Universidade Da Coruña. Estructura de Datos: Pilas, Colas, Listas.
Facultad de Informática, Universidad A Coruña.
Fuentes Electrónicas:
- https://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)
- https://es.wikipedia.org/wiki/Lista_(tipo_de_dato_abstracto)
- https://es.wikipedia.org/wiki/Cola_(inform%C3%A1tica)
- https://algo2.files.wordpress.com/2008/08/ayp2_listas_pilas_y_colas.p
df
- https://calcifer.org/documentos/librognome/glib-lists-queues.html
21