格式标准版本
scanf("%c %c %d%c",&a,&b,&w,&c); s1=Locate(G,a); s2=Locate(G,b);
G.arcs[s1][s2]=G.arcs[s2][s1]=w; } }
int FirstVex(Graph G,int k){
//输入一条边依附的顶点和权值
//图G中顶点k的第一个邻接顶点
if(k>=0 && k<G.vexnum){ //k合理 for(int i=0;i<G.vexnum;i++) if(G.arcs[k][i]!=INFINITY) return i; } return -1; }
//图G中顶点i的第j个邻接顶点的下一个邻接顶点 int NextVex(Graph G,int i,int j){
if(i>=0 && i<G.vexnum && j>=0 && j<G.vexnum){ //i,j合理 for(int k=j+1;k<G.vexnum;k++) if(G.arcs[i][k]!=INFINITY) return k; } return -1; }
//深度优先遍历 void DFS(Graph G,int k){ int i; if(k==-1){
//第一次执行DFS时,k为-1
for(i=0;i<G.vexnum;i++) if(!visited[i]) DFS(G,i); } else{ visited[k]=true; if(z==1)
13
//对尚未访问的顶点调用DFS