www.pudn.com > Dijkstra_Huffman_Prim.rar > Dijkstra.cpp


// Dijkstra.cpp : Defines the entry point for the console application. 
// 
 
#include "stdafx.h" 
#include  
#include 
#define MAX 999     //MAX 表示无穷 
#define M 40 
 
void display(int ,int ,int*, int*); 
 
/*求图以顶点v为始点到其他各顶点间的最短路径的Dijkstra算法*/ 
void dijkstra(int ad[M][M],int pre[M],int n,int v) 
{ 
    int i,j,u,min,dist[M]; 
	for(i=1; i<=n; i++) 
	{  
	  dist[i] = ad[v][i]; 
	  if(dist[i]=0; j--){ 
				fprintf(fp,"%d",k[j]); 
				printf("%d",k[j]); 
			  } 
            fprintf(fp,"\t\t%d\n",dist[i]); 
			printf("\t\t%d\n",dist[i]); 
		} 
	} 
	fclose(fp); 
} 
 
void main() 
{ 
  int ad[M][M],pre[M]; 
  int n,v;  //n为图的顶点数,v为源点 
  int t,i=1,j=1; 
  printf("请输入已知图的顶点数:"); 
  scanf("%d",&n); 
   
  ifstream tp("Dijkstra.txt"); 
  if(tp)           //从文件读入图的相邻矩阵的元素数据 
  { 
  while(!tp.eof()){ 
	  tp>>t; 
	  printf("<%d,%d>=%-3d  ",i,j,t); 
	  ad[i][j]=t; 
	  j++; 
	  if(j==n+1){ 
		  printf("\n"); 
		  i++; 
		  j=1; 
	  } 
	  if(i==n+1)break; 
  } 
  tp.close(); 
  } 
	 
	printf("选择一个结点:"); 
    scanf("%d",&v); 
    dijkstra(ad,pre,n,v); 
}