TipoCola * insertar (TipoCola * cola, TipoElemento elto) { struct ElementoCola * individuo; /* reserva de memoria */ individuo=malloc(sizeof(struct ElementoCola)); if (NULL==individuo) { perror("malloc:"); return NULL; } /* valores para el nuevo elemento */ /* memcpy((void *) &(individuo->elemento), (const void *) &elto, sizeof(TipoElemento)); */ individuo->elemento = elto; individuo->siguiente=NULL; /* dar la vez en la cola */ if (esVacia(*cola)) { cola->primero=individuo; cola->ultimo=individuo; } else { (cola->ultimo)->siguiente=individuo; cola->ultimo=individuo; } return cola; }
void insertarFinal(tlista&l,telemento e){ tnodo * nn; nn = new tnodo; nn->elemento = e; tposicion p; if (esVacia(l)){ nn->sig = NULL; l = nn; }else{ for (p = l; p->sig != NULL; p = p->sig) { } p->sig = nn; nn->sig = NULL; } }
void insertarOrdenado (tlista &l, telemento e){ tposicion p; tposicion pant; tnodo *nn; nn=new tnodo; nn->elemento=e; if (esVacia(l)){ nn->sig=NULL; l=nn; }else{ for (p=l->sig,pant=l; ((p!=NULL)&&(!((comparar(e, pant->elemento)==1)&&(comparar(e, p->elemento)==2)))) ; p=p->sig,pant=pant->sig) { } nn->sig=p; pant->sig=nn; } }
TipoElemento * primero (TipoCola cola) { if (esVacia(cola)) { return NULL; } return (&(cola.primero->elemento)); }
bool modificarLista(tlista &l,telemento e){ tposicion posicion; if (!esVacia(l)){ posicion = buscarPosicion(l, e); modificarTarea(posicion->elemento); return true; } else return false; }
void quitar (TipoCola *cola) { struct ElementoCola * individuo; if (! esVacia(*cola)) { /* salir de la cola */ individuo=cola->primero; cola->primero=individuo->siguiente; if (cola->ultimo==individuo) { cola->ultimo=NULL; } /* liberar la memoria */ free(individuo); } }
tposicion buscarPosicion (tlista l, telemento e){ bool encontrado = false; tposicion p; p = l; if (!esVacia(l)){ for (p = l; ((encontrado == false) && (p->sig != NULL)); p = p->sig) { if (comparar(e, p->elemento) == true){ encontrado = true; } } } return p; }