Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web

Implementación de TAD COLA

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;
}