算法导论-25.1-最短路径与矩阵乘法

一、介绍

二、代码

#include 
#include 
using namespace std;

#define N 6//点的个数
#define M 10//边的个数
//邻接矩阵
struct Graph
{
	int map[N+1][N+1];
	int row;
	Graph(int n):row(n)
	{
		int i, j;
		for(i = 1; i <= N; i++)
		{
			for(j = 1; j <= N; j++)
				if(i == j)
					map[i][j] = 0;
				else
					map[i][j] = 0x7fffffff;
		}
	}
	Graph(Graph &G)
	{
		row = G.row;
		int i, j;
		for(i = 1; i <= N; i++)
		{
			for(j = 1; j <= N; j++)
				map[i][j] = G.map[i][j];
		}
	}
};
int min(int a, int b)
{
	return a < b ? a : b;
}
void Print(Graph G)
{
	int i, j;
	for(i = 1; i <= N; i++)
	{
		for(j = 1; j <= N; j++)
			cout<>start>>end>>value;
		G.map[start][end] = value;
	}
	Print(G);
	Slow_All_Pairs_Shortest_Paths(G);
	Faster_All_Pairs_Shortest_Paths(G);
	return 0;
}


三、练习

25.1-1

SLOW-ALL-PARIS-SHORTEST-PATHS:

FASTER-ALL-PAIRS-SHORTEST-PATHS:

 

25.1-2

自己到自己不需要代价

 

25.1-3

单位矩阵E

 

25.1-5

 

25.1-6

 

25.1-7

 

25.1-8

 

25.1-9

 

25.1-10

你可能感兴趣的:(算法导论-25.1-最短路径与矩阵乘法)