|
|||||||
|
|
|
|||||
|
|
|||||||
Creación del nodo
typedef struct TNodoCola
{
TipoC info;
struct TNodoCola *sig;
} *pNodoCola;
Creación de la estructura Cola
typedef struct
{
pNodoCola primero,ultimo;
} TCola, *Cola;
Retorna una cola vacía (header)
Cola inicCola(void)
{
Cola col = (Cola) malloc(sizeof(TCola));
col->primero = col->ultimo = NULL;
return col;
}
Inserta un elemento al final
void adicCola(Cola col, TipoC elem)
{
pNodoCola p = (pNodoCola) malloc(sizeof(TNodoCola));
p->info = elem;
p->sig = NULL;
if (col->primero == NULL)
col->primero = col->ultimo = p;
else
{
col->ultimo->sig = p;
col->ultimo = p;
}
}
Elimina el primer elemento
void elimCola(Cola col)
{
pNodoCola p;
if(col->primero->sig == NULL)
{
free(col->primero);
col->primero = col->ultimo = NULL;
}
else
{
p = col->primero;
col->primero = p->sig;
free(p);
}
}
Retorna la información del primer nodo
TipoC infoCola(Cola col)
{
return col->primero->info;
}
Informa si la cola está vacía
int vaciaCola(Cola col)
{
return col->primero == NULL;
}
Libera memoria
void destruirCola(Cola col)
{
pNodoCola p,q;
for(p = col->primero; p != NULL; p = p->sig, free(q))
q = p;
}