【正文】
}}void outTable(T *head){13 int i=0。 i=0。 } //歸并 func(head,k)。 curelem=(rand()%MAX+1)。int main(){ int num,k,r。 }}void output1(int *arr,int n){ int i。 } //輸出路徑 for(i=1。wn。 int tv,td=0。3.程序源代碼include include define N 1000void shortestPaths(int v,int *COST,int *DIST,int n)。首先,生成一條到最近結點的最短路徑,然后,生成一條到第二近結點的最短路徑,等等。DIST[v]被置成 0 int S[n]。 tv=w。//更新結點 w 最短路徑并記錄 w 結點的上一結點 } } } //輸出第 num 次更新后的路徑長度 printf(\n 第%d 次路徑:,num)。j++) { if(*((a+i*row)+j)==N) printf( N\t)。}T。 cur=(T *)malloc(sizeof(T))。 } if(r==0) printf(不用補充虛結點\n)。 } mprenext=min[i]next。 while(i0) { printf(%4d,curelem)。 temp=tempnext。 } i=1。 int i=0,j=1,times=(headelem1)/(k1),t=times。 curelem=(rand()%MAX+1)。 headelem=0。i++) {7 if(*(arr+i)==N) printf( N\t)。 w=i。tdDIST[w]) { td=DIST[w]。i++) { S[i]=0。//輸出更新后其它結點到起始結點的路徑長度int main(){ int COST[7][7]={ {0,20,50,30, N, N, N}, {N, 0,25, N, N,70, N}, {N, N, 0,40,25,50, N}, {N, N, N, 0,55, N, N}, {N, N, N, N, 0,10,70}, {N, N, N, N, N, 0,50}, {N, N, N, N, N, N, 0} }。貪心方法:1) 度量標準生成的所有路徑長度之和作為度量標準。COST[0][0],DIST,7)。num++) { //選擇距離結點 v 最近的結點 w for(w=1。w+