/*
 * cola-lista.c
 *
 */
#define __COLA_LISTA_C

/* Seccion 2.4 de "Estructuras de datos y aloritmos"
 * de Aho, Hopcropft y Ullman
 */

#include "cola.h"

/* convierte c en una cola vacia */
void cola_anula( Cola * c )
{
		lista_anula(&c->elementos);
}

/* devuelve el valor del primer elemento de c */
Elem cola_frente( Cola * c )
{
		return lista_recupera( &c->elementos, lista_primero(&c->elementos));
}

/* inserta el elemento x al final de c */
void cola_pone_en_cola( Elem x, Cola * c)
{
		lista_inserta( &c->elementos,
						x,
						lista_fin(&c->elementos) );
}

/* suprime el primer elemento de c */
void cola_quita_de_cola( Cola * c )
{
		lista_suprime( &c->elementos, 1 );
}

/* devuelve verdadero si c es la cola vacia */
boolean cola_vacia( Cola * c )
{
		if (lista_primero(&c->elementos) == lista_fin(&c->elementos))
				return true;
		else
				return false;
}

/* EOF cola.c */
