final.obj : error LNK2001: unresolved external symbol "int * a" (?a@@3PAHA)

编写了一个找图中环路并输出节点的程序连接出现错误final.obj:errorLNK2001:unresolvedexternalsymbol"int*a"(?a@@3P... 编写了一个找图中环路并输出节点的程序 连接出现错误 final.obj : error LNK2001: unresolved external symbol "int * a" (?a@@3PAHA)
,代码如下:
#include <stdio.h>
#include<iostream.h>
#include<stdlib.h>
#define maxvertexnum 100//设置邻接矩阵的最大阶数
#define queuesize 100//设置循环队列的最大空间
typedef struct{
int front,rear,count,data[queuesize];
}cirqueue;//循环队列结构定义

typedef int vertextype;//设置图的顶点信息为整型
typedef int edgetype;//设置边上权值为整型
typedef struct{
vertextype vexs[maxvertexnum];//图的顶点信息表
edgetype edges[maxvertexnum][maxvertexnum];//图的邻接矩阵
int n,e;//图的顶点数和边数
}mgraph;//图的邻接矩阵表示结构定义
//typedef enum{FALSE,TRUE}boolean;
int visited[maxvertexnum];//顶点访问标记向量
int a[],b=0,d=0,f;

createmgraph(mgraph *g);
dfsm(mgraph *g,int i);
dfstraverse(mgraph *g);

main()//主函数
{//建立用邻接矩阵表示的图,并进行深度优先搜索和广度优先搜索
mgraph *g;
g=(mgraph*)malloc(sizeof(mgraph));//申请图g的邻接矩阵表示空间
createmgraph(g);//建立图g
printf("the dfs is:");//对图g进行深度优先搜索
dfstraverse(g);
//printf("the bfs is:");//对图g进行广度优先搜索
//bfstraverse(g);
return 0;
}
createmgraph(mgraph *g)
{//建立图g的邻接矩阵表示
int i,j,k,w;
int flag;
printf("\ncreat:\n");
printf("digragh--0\n");
printf("undigragh--1\n");
scanf("%d",&flag);
printf("input n,e\n");
scanf("%d%d",&g->n,&g->e);//输入图*g的顶点数和边数
printf("input nodes:\n");
for(i=0;i<g->n;i++)//输入n个顶点的信息
scanf("%d",&(g->vexs[i]));
for(i=0;i<g->n;i++)//将邻接矩阵数组初始化
for(j=0;j<g->n;j++)
g->edges[i][j]=0;
for(k=0;k<g->e;k++){//读入n有向边对应的三元组(i,j,w),若构造有向图,
//i为有向边的弧尾,j是有向边的弧头,
//w是有向边的权值(建立一般的有向图时,可输入1)
printf("input i,j,w:\n");
scanf("%d%d%d",&i,&j,&w);
g->edges[i][j]=w;
if (flag)//构造无向图
g->edges[j][i]=w;
}
return 0;
}

dfsm(mgraph *g,int i)
{//对以邻接矩阵表示的图,以序号为i的顶点为出发点进行深度优先搜索
int j;

if(visited[i]>=1){
visited[i]=visited[i]+1;
for(int c=0;c<=b;c++)
if(a[c]==i){
f=c;
printf("huan wei:");
d=d+1;}
for(c=f;a[c]!=i;c++)
cout<<g->vexs[c];
}
else visited[i]=1;
for(j=0;j<g->n;j++)
if (g->edges[i][j]!=0)//&&(!visited[j]))
a[b]=i;
b=b+1;

dfsm(g,j);
}//end of dfsm

dfstraverse(mgraph *g)
{//对以邻接矩阵表示的图,进行深度优先搜索
int i;
for(i=0;i<g->n;i++)//将图的所有顶点设置为未访问过
visited[i]=0;
for(i=0;i<g->n;i++)//对图*g进行深度优先搜索

//if(!visited[i])
dfsm(g,i);
printf("\n");
printf("gongyou:%d",d);
}//end of dfstraverse
展开
 我来答
theodorez
2009-11-23 · TA获得超过430个赞
知道答主
回答量:261
采纳率:0%
帮助的人:184万
展开全部
int n,e;//图的顶点数和边数
}mgraph;//图的邻接矩阵表示结构定义
//typedef enum{FALSE,TRUE}boolean;
int visited[maxvertexnum];//顶点访问标记向量
int a[],b=0,d=0,f;
~~~~~~~~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式