Está en la página 1de 3

ESPECIALIDAD: INFORMATICA

COLAS

Es un tipo especial de lista abierta en la que solo se puede insertar nodos en uno de los
extremos de la lista y solo se pueden eliminar nodos en el otro. Adema como sucede en las
pilas las escrituras de datos siempre son intercesiones de nodos y las lecturas siempre
eliminan el nodo ledo.
Este tipo de lista es conocido como lista FIFO el primero en entrar es el primero en salir.









DECLARACIONES E IMPLEMENTACION DE UNA COLA

Los tipos de que definiremos normalmente para manejar colas sern casi los mismos que
para manejar listas y pilas tan solo cambiaremos algunos nombres.










tipoNodo es para declarar nodos
pNodo es el tipo para declarar puntero a un nodo
Cola es el tipo para declarar colas







Es evidente a la vista del grafico que una cola es un alista abierta as que sigue siendo muy
importante que nuestro programa nunca pierda el valor del puntero al primer elemento
igual que pasa con las listas abiertas adems debido al funcionamiento de las colas tambin
Struct nodo {
Int dato;
Struct nodo *siguiente;
};

Typedef struct _nodo {
Int dato;
Struct _nodo *siguiente;
} tipoNodo ;

Typedef tipoNodo *pNodo
Typedef tipoNodo *Cola;

debemos mantener un puntero para el ltimo elemento de la cola que ser el punto en
donde insertemos nuevos nodos.
Teniendo en cuenta que las lecturas y escrituras de una cola se hace siempre en extremos
distintos lo ms fcil ser insertar nodos por el final a continuacin del nodo que no tiene
nodo siguiente y leerlos desde el principio hay que recordar que leer un nodo implica
eliminarlo de la cola.

AADIR UN NODO

Las operaciones con colas son muy sencillas prcticamente no hay casos especiales salvo que
la cola este vaca.

AADIR NODO A UNA COLA

1. Hacemos que nodo siguiente apunte a NULL.
2. Si ultimo no es NULL hacemos que ultimo siguiente apunte a nodo.
3. Y actualizamos ltimo haciendo que apunte a nodo.
4. Si primero es NULL significa que la cola estaba vaca as que haremos que primero
apunte tambin a nodo.

CASO ESPECIAL: AADIR NODO A UNA COLA VACIA

1. Hacer que nodo siguiente apunte a NULL.
2. Que el puntero primero apunte a nodo.
3. Y que el puntero ultimo tambin apunte a nodo.

ELIMINACION DE UN NODO

Usaremos un puntero a un nodo auxiliar

1. Hacemos que nodo apunte al primer elemento de la cola es decir a primero.
2. Asignamos a primero la direccin del segundo nodo de la pila primero siguiente.
3. Guardamos el contenido del nodo para devolverlo como retorno.
4. Liberamos la memoria asignada al primer nodo el que queremos eliminar.
5. Si primero es NULL hacemos que el ltimo tambin apunte a NULL ya que la
lectura a dejado la cola vaca.




Preguntas

1.- Como tambin es conocida la estructura de datos colas?
Tambin se hace llamar listas FIFO primeras en entrar primeras en salir

2.- En donde se insertan los nodos?
Los nodos se insertan en los extremos

3.- Que declara el pNodo?
Declara el puntero a un nodo

4.- Que implica leer un nodo?
El leer un nodo implica eliminarlo de la cola

5.- Como sabemos si una cola esta vaca?
Cuando primero es NULL y debemos hacer que primero apunte a nodo

6.- Cual es la diferencia entre colas y pilas
Pilas: ultimo que entra y primero en salir permite la entrada por cualquier lado

cola: primero que entra y primero en salir y debe entra por un lado y salir por el mismo que entro

También podría gustarte