
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 展开
,代码如下:
#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 展开
1个回答
展开全部
int n,e;//图的顶点数和边数
}mgraph;//图的邻接矩阵表示结构定义
//typedef enum{FALSE,TRUE}boolean;
int visited[maxvertexnum];//顶点访问标记向量
int a[],b=0,d=0,f;
~~~~~~~~
}mgraph;//图的邻接矩阵表示结构定义
//typedef enum{FALSE,TRUE}boolean;
int visited[maxvertexnum];//顶点访问标记向量
int a[],b=0,d=0,f;
~~~~~~~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |