Listas enlazadas, pilas, colas.
En
la entrada de esta semana se tocarán algunos puntos que se trataron en el post
de la semana anterior (como por ejemplo los términos de pilas y colas además de
ampliar el tema de listas enlazadas de las cuales se dio apenas una pequeña
pincelada) buscando profundizarlos un poco más.
Listas
enlazadas:
La definición de este tipo de listas la
comentamos en la entrada de la semana anterior, pero es importante hablar un
poco más sobre estas. Este tipo de listas se dividen en listas simples, listas
doblemente enlazadas y listas circulares.
·
Listas simples: se caracterizan por que
cada nodo cuenta con solo un puntero, el cual señala al nodo siguiente, en
casos de que este sea el primero de la lista entonces esta señalara a NULL.
Gráfico lista simple. |
Listas doblemente enlazadas: Estas deben
su nombre a su principal característica la cual es que cada nodo cuenta con 2
enlaces, uno que señala al nodo anterior y el otro puntero va a señalar el nodo
siguiente dentro de la lista, de igual manera en caso de que sea el último este
señalar como nodo siguiente a NULL.
Gráfico lista doblemente enlazada. |
·
Listas circulares: Este tipo de lista
puede tener la estructura de una lista simple o de una doblemente enlazada,
pero cuenta con la diferencia de que esta no tiene fin, esto sucede gracias a que
el ultimo nodo en su puntero que señala al nodo siguiente no apunta a NULL como
es el caso de los dos tipos anteriores si no que
este señala al nodo inicial.
este señala al nodo inicial.
Gráfico lista circular. |
Pilas:
Según el libro “Tutor de Estructuras de
Datos Interactivo” elaborado por López Daniel, Abraham García Soto, Martin Gómez
Antonio José, “una pila se define como una clase especial de lista en la cual
todas las inserciones y borrados tienen lugar en un extremo denominado extremo,
cabeza o tope. otro nombre para las pilas son listas FIFO”. Si hace relación con
la vida cotidiana las pilas en la computación funcionan al igual que las pilas
en esta pues en las pilas de la computación el último elemento en entrar es el último
en salir al igual que en la vida real por ejemplo si hacemos una pila de cubos
el ultimo cubo que ingreso a esta va a ser el primero en salir.
Estas
son las operaciones básicas de una pila que presenta Rodrigo Paszniuk en su artículo
“Pilas en C++” escrito en el 2013.
- · Crear una pila (p) vacía.
- · Pila vacía (empty) determinar si una pila está vacía.
- · Pila llena determina si la pila se ha llenado.
- · Meter (push) inserta un elemento en la cima de la pila.
- · Sacar (pop) recupera y elimina el último elemento en la cima de la pila.
Cola:
Luis Igoodbad en su artículo “Colas en programación”-2013,
define las colas de la siguiente manera “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”. De igual manera que con la pila podemos hacer una relación de la cola
con la vida real. Está en el área de la computación como se menciona en la cita
anterior ingresa los datos desde un extremo y salen por otro así que podríamos decir
que el primero entrar es el primero en salir al igual que como funcionan las
filas por ejemplo en un supermercado.
en
salir.
Estas
son las operaciones básicas de una pila que presenta Rodrigo Paszniuk en su artículo
“Colas en C++” escrito en el 2013.
- Inicializar la cola.
- Añadir un elemento al final de la cola.
- Eliminar el primer elemento de la cola.
- Vaciar la cola.
- Verificar el estado de la cola: Vacía / Llena.
Como podemos observar estas
estructuras tienen diferencias notorias entre si, esto se debe a que podemos
acoplar cada una a la necesidad que tengamos y al problema que debes resolver. Una
vez más recuerda que la programación es muy flexible así que lleva la hasta
donde te la imaginación.
Fuentes:
https://www.programacion.com.py/escritorio/c/colas-en-c
https://es.slideshare.net/luisigoodbad/colas-en-programacion
https://www.programacion.com.py/escritorio/c/pilas-en-c
http://decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/pilas.html
Fuentes:
https://www.programacion.com.py/escritorio/c/colas-en-c
https://es.slideshare.net/luisigoodbad/colas-en-programacion
https://www.programacion.com.py/escritorio/c/pilas-en-c
http://decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/pilas.html
Comentarios
Publicar un comentario