Dijkstra算法求最短路径

 摘自最短路径算法,如有任何侵权问题,请及时通知本人,本人将马上予以删除。

Dijkstra算法求最短路径_第1张图片

Dijkstra算法求最短路径_第2张图片

Dijkstra算法求最短路径_第3张图片

Dijkstra算法求最短路径_第4张图片

算法过程详见http://blog.csdn.net/cjc211322/article/details/24933909

/*
	有向图的构建及最短路径求解(Dijkstra)
*/
#include 
#include 

#define MAX_VERTEX_NUM 30
#define MAX_INT 1000

typedef int VrType;
typedef char VtType;
bool visted[MAX_VERTEX_NUM];		//搜索时的标记矩阵

typedef struct ARC					//用于表征图的连接关系
{
	VrType adj;						//连接关系
	ARC *info;						//附加信息
}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

typedef struct						//定义图的完整结构
{
	VtType vertex[MAX_VERTEX_NUM];	//顶点		
	AdjMatrix arcs;					//邻接矩阵
	int vertexnum,arcnum;			//弧线和顶点的数目
}MGraph;

typedef struct node					//FIFO链表(队列)
{
	int vid;
	struct node* next;
}Queue;

Queue* head=NULL; 

void CreateG(MGraph &G)				//创建图
{
	int i,j;

	printf("Construct the Graph...\n");
	G.vertexnum=5;
	G.arcnum=7;

	for(i=0;inext=NULL;
		head->vid=v;
	}
	else
	{
		temp=head;
		while(temp->next!=NULL)
		{
			temp=temp->next;
		}
		newnode=(Queue*)malloc(sizeof(Queue));
		newnode->next=NULL;
		newnode->vid=v;
	}
	return;
}

int sum(int flag[],int n)
{
	int s=0;
	for(int i=0;i

Dijkstra算法求最短路径_第5张图片
 

你可能感兴趣的:(算法/数据结构)