n");Р?CreateUDN(G); Р?while(1){Р menu();Р scanf("%d",&choice);Р switch(choice){Р case 1: jianjie();Р break;Р?case 2: { Р while(1)Р { Р printf("分别输入起点和终点代号以空格分开\n"); Р scanf("%d%d",&v0,&end); Р ShortPath(G,v0,P,D); Р printf("最短路径:\n "); Р for(i=0;i<G.vexnum;i++) Р { Р if(P[end-1][have[i]]==1) Р printf("-->%s",G.vexs[have[i]]); Р?} Р?printf("\n路径长度:%d\n",D[end-1]); Р?printf("^_^ 本次导航结束:\n1.继续导航 2.返回主菜单\n"); Р?scanf("%d",&choice1); Р?if(choice1==2) Р break; Р?} Рelse if(choice1<1||choice1>2){Р printf("你输入选项有误,请继续导航!!!\n");Р }?Р?} Р break; Р?case 3: { Р printf("请输入出发点:"); Р scanf("%d",&v0); Р ShortPath (G,v0,P,D); Р printf("v0到其他所有点的最短路径为:\n"); Р for(i=0;i<G.vexnum;i++) Р { Р for(j=0;j<G.vexnum;j++) Р if(P[i][have[j]]==1) Р printf("-->%s",G.vexs[have[j]]); Р printf("\n路径长度:%d\n",D[i]); Р } Р?}