Documente Academic
Documente Profesional
Documente Cultură
Algoritmica grafelor aux->val=e.dest; aux->next=NULL; if(temp==NULL) (*g)[e.sursa]=aux; else { while(temp->next!=NULL) temp=temp->next; temp->next=aux; } } int citireMuchie(muchie *e) { printf("\nSursa=:"); scanf("%d",&e->sursa); printf("\nDestinatia=:"); scanf("%d",&e->dest); if((e->sursa<0)||(e->dest<0)||(e->sursa>=20)||(e->dest>=20)) return 0; else return 1; } void citireGraph(graph *g) { muchie e; while(citireMuchie(&e)==1) adMuchie(g,e); } void initGraph(graph *g) { int i; for(i=0;i<20;i++) (*g)[i]=NULL; } void printGraph(graph *g) { int i; list *temp; for(i=0;i<20;i++) { printf("\nNodul %d: ",i); temp=(*g)[i]; while(temp!=NULL) { printf("%d ",temp->val); temp=temp->next; } } } void destroyGraph(graph *g) { plist temp,aux; int i; for(i=0;i<20;i++) { temp=(*g)[i]; while(temp!=NULL) 2
Algoritmica grafelor { aux=temp->next; free(temp); temp=aux; } } } void main() { graph g; initGraph(&g); printf("\nCitie graf. Terminati cu nod<0\n"); citireGraph(&g); printf("\nGraful citit este:"); printGraph(&g); destroyGraph(&g); getch(); }