真的跪求了实在是不知道哪错了,大家帮着给看看吧,求你们了
编译没错,就是最后得不到遍历结果希望大家给运行看看是怎么回事呀,谢了谢了。。。#include<stdio.h>
#define MaxInt 10000
#define MVNum 100
typedef char VertexType;
typedef int ArcType;
typedef enum{FALSE,TRUE}define;
define visited[MaxInt];
typedef struct
{
VertexType vexs[MVNum];
ArcType arcs[MVNum][MVNum];
int vexnum,arcnum;
}Graph;
int Locate(Graph G,char v)
{
int i;
for(i=0;i<G.vexnum;i++)
if(G.vexs[i]==v)
return i;
return -1;
}
void CreatGraph(Graph G)
{
int i,j,w;
char v1,v2;
printf("输入顶点个数和边条数\n");
scanf("%d,%d",&G.vexnum,&G.arcnum);
getchar();
for(i=0;i<G.vexnum;i++)
{
printf("输入第%d个顶点:",i+1);
scanf("%c",&G.vexs[i]);
getchar();
}
for(i=0;i<G.vexnum;i++)//初始化
{
for(j=0;j<G.vexnum;j++)
{
G.arcs[i][j]=MaxInt;
}
}
for(i=0;i<G.arcnum;i++)
{
printf("请输入第%d条边所依附的顶点及边上权值:",i+1);
scanf("%c,%c,%d",&v1,&v2,&w);
getchar();
}
i=Locate(G,v1);
j=Locate(G,v2);
G.arcs[i][j]=w;
G.arcs[j][i]=G.arcs[i][j];
}
void DFS(Graph G,int i)
{
int j;
printf("%c\n",G.vexs[i]); //访问顶点vi
visited[i]=TRUE;
for(j=0;j<G.vexnum;j++) //依次搜索vi邻接点
if(G.arcs[i][j]!=MaxInt && !visited[j])
DFS(G,j);
}
void DFSsearch(Graph G)
{
int i;
for(i=0;i<G.vexnum;i++)
visited[i]=FALSE;
for(i=0;i<G.vexnum;i++)
if(!visited[i])
DFS(G,i);
}
void main()
{
Graph G;
CreatGraph(G);
printf("*******************无向网创建完成******************\n");
printf("深度优先遍历顺序:\n");
DFSsearch(G);
}