#include<iostream> //表示你使用的是标注命名空间
#include<stdio.h>
using namespace std; //声明命名空间,避免命名冲突
#define NODES 6
#define inf 999 //999视为无穷大
int net[105][105];
int d[105],p[105];
int flag[105]; //标志位 ,标志该点是否在集合N里
void init(int cur) //初始化源结点的路由表函数
{
memset(flag,0,sizeof(flag));//将flag数组初始化为0
flag[cur]=1;//标志位,若标志位为1则表示该结点已加入到集合N中
for(int i=0;i<NODES;i++)
{
p[i]=cur;//到每一个结点的前一跳都为源结点
if(net[i][cur]!=inf) //如果结点i与源结点相邻
d[i]=net[i][cur]; //则源结点到该节点的最短距离为矩阵中存的两点距离
else
d[i]=inf;
}
}
void LS() //ls算法求最短路径
{
int k=1,w;//k表示现在N中有多少个结点
while(1)
{
int min_=inf;
for(w=0;w<NODES;w++)
{