Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Algoritmos y Estructura de Datoa, aplicación colas
1. Estructura de Datos
1
Por: Ing. Oswaldo Basurto G.
C O L A S
UNEDS
Modalidad de Estudios Semipresencial
TUTOR: Ing. Oswaldo Basurto G. Msc
2. Estructura de Datos
2
Por: Ing. Oswaldo Basurto G.
Una cola es un tipo especial de lista enalazada 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. Además, como sucede con las pilas, las escrituras de datos siempre son
inserciones de nodos, y las lecturas siempre eliminan el nodo leído.
Este tipo de lista es conocido como lista FIFO (First In First Out), el primero en
entrar es el primero en salir.
Definición de Colas
3. Estructura de Datos
3
Por: Ing. Oswaldo Basurto G.
Los tipos que definiremos normalmente para manejar colas serán casi los
mismos que para manejar listas y pilas, tan sólo cambiaremos algunos
nombres:
struct nodo{
int dato;
struct nodo *sig;
};
/* Declaración de variable para pila */
struct nodo *primero, *ultimo, *p=NULL;
Definición de Cola
4. Estructura de Datos
4
Por: Ing. Oswaldo Basurto G.
De nuevo nos encontramos ante una estructura con
muy pocas operaciones disponibles. Las colas sólo
permiten añadir y leer elementos:
Añadir: Inserta un elemento al final de la cola.
Leer: Lee y elimina un elemento del principio de la cola.
Operaciones con Colas
5. Estructura de Datos
5
Por: Ing. Oswaldo Basurto G.
Partiremos de que ya tenemos el nodo a insertar y, por supuesto un puntero que apunte a él, además
los punteros que definen la cola, primero y ultimo que valdrán NULL:
El proceso es muy simple, bastará con que:
1. p->sig apunte a NULL.
2. Y que los punteros primero y ultimo apunten a p.
Añadir nodo en una cola vacía
6. Estructura de Datos
6
Por: Ing. Oswaldo Basurto G.
De nuevo partiremos de un nodo a insertar, con un puntero que apunte a él, y de una cola, en
este caso, al no estar vacía, los punteros primero y ultimo no serán nulos:
El proceso sigue siendo muy sencillo:
1. Hacemos que p->sig apunte a NULL.
2. Después que ultimo->sig apunte a p.
3. Actualizamos ultimo, haciendo que apunte a p.
Añadir elemento a una cola no vacía
7. Estructura de Datos
7
Por: Ing. Oswaldo Basurto G.
Ahora sólo existe un caso posible, ya que sólo podemos leer desde un extremo de la cola.
Partiremos de una cola con uno o más nodos, y usaremos un puntero auxiliar, nodo:
1. Hacemos que aux apunte a primero.
2. Asignamos a primero la dirección del segundo nodo de la cola: primero->sig.
3. Liberamos la memoria asignada a aux, el que queremos eliminar.
Leer y eliminar un elemento de la Cola