#include #include #define uint unsigned int #define uch unsigned char #define cmax 5 int vl[cmax],vp[cmax]; int vcost[cmax][cmax]={{-1,50,30,100,10},{-1,-1,-1,-1,-1},{-1,5,-1,50,-1},{-1,20,-1,-1,-1},{-1,-1,-1,10,-1}}; uint fexistal(int pvl[],int pvs[],uint pcmax) { for(uint i=0;ipvl[i])&&(pvl[i]!=-1)&&(pvs[i]==0)) { lmin=i; min=pvl[i]; } return lmin; } void dijkstra(int p_vcost[cmax][cmax], int p_vl[cmax],int p_vp[cmax],int nr_noduri) { int vs[cmax]; uch i; uint poz; vs[0]=1; p_vl[0]=0; for(i=1;ip_vl[poz]+p_vcost[poz][k]) { p_vl[k]=p_vl[poz]+p_vcost[poz][k]; p_vp[k]=poz; }; }; } } } void main() { int i; clrscr(); dijkstra(vcost,vl,vp,sizeof(vcost[0])/sizeof(vcost[0][0])); for(i=1;i