/* ============================================================================= Implementações dos algoritmos referentes a listas ========================================================================== */ #include "listas.h" void InicializaLista(ListaAdj *p){ *p=NULL; return; } void InsereListaInic(ListaAdj *p, int v, int c){ ListaAdj q = (ListaAdj)calloc(1,sizeof(NoAdj)); q->vert=v; q->custo=c; q->prox=*p; *p=q; return; } void InsereListaOrd(ListaAdj *p, int v, int c){ ListaAdj s=*p, t=NULL; while ((s !=NULL) && (s->vert < v)){ t=s; s=s->prox; } if (t==NULL) InsereListaInic(p,v,c); else InsereListaInic(&t->prox,v,c); return; } void LiberaLista(ListaAdj *p){ ListaAdj r = *p; while (r!=NULL) { *p=r->prox; free(r); r=*p; } *p=NULL; return; } /* author: Gustavo Sverzut Barbieri (http://www.gustavobarbieri.com.br) */