java时刻表代码 java如何表示时间( 三 )


while(flag)
{
printf("请输入一个起始景点编号:");
scanf("%d",v0);
if(v00||v0G-vexnum)
{
printf("景点编号不存在!请重新输入景点编号:");
scanf("%d",v0);
}
if(v0=0v0G-vexnum)
flag=0;
}
for(v=0;vG-vexnum;v++)
{
final[v]=0;
D[v]=G-arcs[v0][v].adj;
for(w=0;wG-vexnum;w++)
p[v][w]=0;
if(D[v]INFINITY)
{
p[v][v0]=1;p[v][v]=1;
}
}
D[v0]=0;final[v0]=1;
for(i=1;iG-vexnum;i++)
{
min=INFINITY;
for(w=0;wG-vexnum;w++)
if(!final[w])
if(D[w]min){v=w;min=D[w];}
final[v]=1;
for(w=0;wG-vexnum;w++)
if(!final[w](min+G-arcs[v][w].adjD[w]))
{
D[w]=min+G-arcs[v][w].adj;
for(x=0;xG-vexnum;x++)
p[w][x]=p[v][x];
p[w][w]=1;
}
}
for(v=0;vG-vexnum;v++)
{
if(v0!=v) printf("%s",G-vexs[v0].name);
for(w=0;wG-vexnum;w++)
{
if(p[v][w]w!=v0)printf("--%s",G-vexs[w].name);
t++;
}
if(tG-vexnum-1v0!=v)printf("总路线长%dm\n\n",D[v]);
}
}//ShortestPath_DIJend
void Floyd(MGraph *G)
{
int v,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];
for(v=0;vG-vexnum;v++)
for(w=0;wG-vexnum;w++)
{
D[v][w]=G-arcs[v][w].adj;
for(u=0;uG-vexnum;u++)
p[v][w][u]=0;
if(D[v][w]INFINITY)
{
p[v][w][v]=1;p[v][w][w]=1;
}
}
for(u=0;uG-vexnum;u++)
for(v=0;vG-vexnum;v++)
for(w=0;wG-vexnum;w++)
if(D[v][u]+D[u][w]D[v][w])
{
D[v][w]=D[v][u]+D[u][w];
for(i=0;iG-vexnum;i++)
p[v][w][i]=p[v][u][i]||p[u][w][i];
}
while(flag)
{
printf("请输入出发点和目的地的编号:");
scanf("%d%d",k,j);
if(k0||kG-vexnum||j0||jG-vexnum)
{
printf("景点编号不存在!请重新输入出发点和目的地的编号:");
scanf("%d%d",k,j);
}
if(k=0kG-vexnumj=0jG-vexnum)
flag=0;
}
printf("%s",G-vexs[k].name);
for(u=0;uG-vexnum;u++)
if(p[k][j][u]k!=uj!=u)
printf("--%s",G-vexs[u].name);
printf("--%s",G-vexs[j].name);
printf(" 总路线长%dm\n",D[k][j]);
}//Floyd end
void Search(MGraph *G)
{
int k,flag=1;
while(flag)
{
printf("请输入要查询的景点编号:");
scanf("%d",k);
if(k0||kG-vexnum)
{
printf("景点编号不存在!请重新输入景点编号:");
scanf("%d",k);
}
if(k=0kG-vexnum)
flag=0;
}
printf("┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃编号┃景点名称┃简介┃\n");
printf("┃%-4d┃%-16s┃%-56s┃\n",G-vexs[k].num,G-vexs[k].name,G-vexs[k].introduction);
printf("┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
}//Search end
int LocateVex(MGraph *G,char* v)
{
int c=-1,i;
for(i=0;iG-vexnum;i++)
if(strcmp(v,G-vexs[i].name)==0)
{c=i;break;}
return c;
}
MGraph * CreatUDN(MGraph *G)//初始化图形,接受用户输入
{
int i,j,k,w;
char v1[20],v2[20];
printf("请输入图的顶点数,弧数:");
scanf("%d%d",G-vexnum,G-arcnum);
printf("请输入景点的编号:、名称、简介:\n");
for(i=0;iG-vexnum;i++)
{
printf("景点编号:");
scanf("%d",G-vexs-num);
printf("景点名称:");
scanf("%s",G-vexs[i].name);
printf("景点简介:");
scanf("%s",G-vexs-introduction);
}
for(i=0;iG-vexnum;i++)
for(j=0;jG-vexnum;j++)
G-arcs[i][j].adj=INFINITY;
printf("请输入路径长度:\n");
for(k=0;kG-arcnum;k++)

推荐阅读