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.




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

Comentarios

Entradas populares de este blog

Estructuras de datos lineales y no lineales

Archivos en la computación ¿Que es un archivo?

Compresion de archivos