/*每次仅对最短路径估计值发生变化了的顶点的所有出边执行松弛操作*/
#include "stdio.h"
int main()
{
int n,m,i,j,k;
//u、v和w的数组大小要根据实际情况来设置,要比m的最大值要大1
int u[8],v[8],w[8];
//first要比n的最大值要大于1,next要比m的最大值要大1
int first[6],next[8];
int dis[6] = {0},book[6] = {0};//book数组用来记录哪些顶点已经在队列中
int que[101] = {0},head = 1,tail = 1;//定义一个队列,并初始化队列
int inf = 99999999;//用inf(infinity的缩写)存储一个我们认识的无穷大
//读入n和m,n表示顶点个数,m表示边的条数
scanf("%d %d",&n,&m);
//初始化dis数组,这里是1号顶点到其余各个顶点的初始路程
for(i = 1;i <= n;i++)
{
dis[i] = inf;
}
dis[1] = 0;
//初始化book数组,初始化为0,刚开始都不在队列中
for(i = 1;i <= n;i++)
{
book[i] = 0;
}
//初始化first数组下标1~n的值为-