#include<stdio.h>
#define M 5
typedef struct {
char vex[M];
int edge[M][M];
int n,e;}MGraph;
MGraph GA;
typedef struct{
int adjvex;
struct node *next;}edgenode;
typedef struct node{
char vex;
edgenode *firstedge;}vexnode;
vexnode GL[M];
MGraph createGA(){
MGraph GA;int i,j,k;
printf("input n&e:\n");
scanf("%c %c",&GA.n,&GA.e);
printf("input all the n:\n");
for(i=0;i<GA.n;i++)
scanf("%c",GA.vex[i]);
for(i=0;i<GA.n;i++)
for(j=0;j<GA.n;j++)
GA.edge[i][j]=0;
printf("input the suitable i&j:\n");
for(k=0;k<GA.e;k++)
{scanf("%d %d",&i,&j);GA.edge[i][j]=1;}
return GA;}
vexnode creatGL(){
vexnode GL[M];edgenode *p;int n,e,i,j,k;
printf("input n&e:\n");
scanf("%d %d",&n,&e);
printf("input all the n:\n");
for(i=0;i<n;i++){scanf("%c",GL[i].vex);GL[i].firstedge=NULL;}
printf("input the information of each corner:\n");
for(k=0;k<e;k++){scanf("%d %d",&i,&j);
p=(edgenode*)malloc(sizeof(edgenode));p->adjvex=j;
p->next=GL[i].firstedge;
GL[i].firstedge=p;}
return GL[M];
}


void DFSA(MGraph GA,int v,int visited[]){
int i;printf("%c",GA.vex[v]);visited[v]=1;
for(i=0;i<GA.n;i++)
if(GA.edge[v][i]!=0&&visited[i]==0)
DFSA(GA,i,visited[]);}
void DFSB(vexnode GL[],int v,int visited[M]){
edgenode *p;int i;
printf("%c",GL[v].vex);visited[v]=1;
p=GL[v].firstedge;
while(p!=NULL){
i=p->adjvex;
if(visited[i]==0)
DFSB(GL[],i,visited[]);
p=p->next;}
}
void BFSA(MGraph GA,int v,int visited[M]){
int Q[M],f=-1,r=-1,i,k;
printf("%c",GA.vex[v]);
visited[v]=1;r++;Q[r]=v;
while(f!=r){
f++;k=Q[f];
for(i=0;i<GA.n;i++)
if(GA.edge[k][i]!=0&&visited[i]==0){
visited[i]=1;printf("%c",GA.vex[i]);r++;Q[r]=i;}}}
void BFSB(vexnode GL[],int v,int visited[M]){
int Q[M],f=-1,r=-1,i,k;edgenode *p;
printf("%c",GL[v].vex);
visited[v]=1;r++;Q[r]=v;
while(f!=r){
f++;k=Q[f];p=GL[k].firstedge;
while(p!=NULL){
i=p->adjvex;
if(visited[i]=0){visited[i]=1;
printf("%c",GL[i].vex);r++;Q[r]=i;}
p=p->next;}}

void traverGA1(MGraph GA)
{static int visited[M];int i,j;
for(i=0;i<GA.n;i++) visited[i]=0;
for(i=0;i<GA.n;i++) if(visited[i]==0) DFSA(GA,i,visited[M]);}//深度优先遍历邻接矩阵
void traverGA2(MGraph GA)
{static int visited[M];int i,j;
for(i=0;i<GA.n;i++) visited[i]=0;
for(i=0;i<GA.n;i++) if(visited[i]==0) BFSA(GA,i,visited[M]);}//广度优先遍历邻接矩阵
void traverGL1(vexnode GL[],int n){
static int visited[M];int i;
for(i=0;i<n;i++) visited[i]=0;
for(i=0;i<n;i++) if(visited[i]==0) DFSB(GL,i,visited[n]);}//深度优先遍历邻接表
void traverGL2(vexnode GL[],int n){
static int visited[M];int i;
for(i=0;i<n;i++) visited[i]=0;
for(i=0;i<n;i++) if(visited[i]==0) BFSB(GL,i,visited[n]);}//广度优先遍历邻接表

main(){
int i;
printf("creat adjacency matrix:\n");
GA=createGA();
printf("done!\n");
printf("creat adjacency list:\n");
GL[M]=creatGL();
printf("done!\n");
switch(i)
case 1: traverGA1(GA);break;
case 2: traverGA2(GA);break;
case 3: traverGL1(GL[M],M);break;
case 4: traverGL2(GL[M],M);break;
}


}
为什么会有错误啊
首先 那些程序都是抄的老师上课讲的笔记,出错的地方应该就是一些引用的地方出现的参数问题了 可是找了老半天还是找不出错误来 
大虾们一定要帮助new comer 啊