用c++实现图的时候,深度优先搜索的函数看不懂 20
是书上写的。可是写到vs2010中,就会报错,而且我也看不懂,主要是函数参数看不懂是什么意思,代码如下:template<classElemType>voidDFS(co...
是书上写的。可是写到vs2010中,就会报错,而且我也看不懂,主要是函数参数看不懂是什么意思,代码如下:
template <class ElemType>
void DFS(const AdjMatrixUndirGraph<ElemType> &g,int v,void (*Visit)(const ElemType &))
{
ElemType e;
g.SetTag(v,VISITED); //设置顶点v已访问标志
g.GetElem(v,e); //去顶点v的数据元素值
Visit(e); //访问顶点v
for (int w=g.FirstAdjVex(v);w!=-1;w=g.NextAdjVex(v,w))
{
if (g.GetTag(w)==UNVISITED)
{
DFS(g,w,Visit); //从v的邻接顶点w开始进行深度优先搜索
}
}
}
编译器报错:
1>y:\文件\visual studio 2010\projects\无向图\无向图\无向图.cpp(511): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>y:\文件\visual studio 2010\projects\无向图\无向图\无向图.cpp(511): error C2143: 语法错误 : 缺少“,”(在“<”的前面)
1>y:\文件\visual studio 2010\projects\无向图\无向图\无向图.cpp(511): error C2059: 语法错误:“)”
1>y:\文件\visual studio 2010\projects\无向图\无向图\无向图.cpp(524): error C2143: 语法错误 : 缺少“)”(在“<end Parse>”的前面) 展开
template <class ElemType>
void DFS(const AdjMatrixUndirGraph<ElemType> &g,int v,void (*Visit)(const ElemType &))
{
ElemType e;
g.SetTag(v,VISITED); //设置顶点v已访问标志
g.GetElem(v,e); //去顶点v的数据元素值
Visit(e); //访问顶点v
for (int w=g.FirstAdjVex(v);w!=-1;w=g.NextAdjVex(v,w))
{
if (g.GetTag(w)==UNVISITED)
{
DFS(g,w,Visit); //从v的邻接顶点w开始进行深度优先搜索
}
}
}
编译器报错:
1>y:\文件\visual studio 2010\projects\无向图\无向图\无向图.cpp(511): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>y:\文件\visual studio 2010\projects\无向图\无向图\无向图.cpp(511): error C2143: 语法错误 : 缺少“,”(在“<”的前面)
1>y:\文件\visual studio 2010\projects\无向图\无向图\无向图.cpp(511): error C2059: 语法错误:“)”
1>y:\文件\visual studio 2010\projects\无向图\无向图\无向图.cpp(524): error C2143: 语法错误 : 缺少“)”(在“<end Parse>”的前面) 展开
2016-06-18
展开全部
#include"iostream.h"constintn=8;constinte=15;typedefintelemtype;boolvisited[n+1];classlink{public:elemtypedata;link*next;};classgraph{public:linka[n+1];voidcreatlink(){inti,j,k;link*s;for(i=1;i>i>>j;coutdata=j;s->next=a[i].next;a[j].next=s;}}voiddfs1(inti){link*p;coutdata);p=p->next;}}voidbfs1(inti){intq[n+1];intf,r;link*p;f=r=0;coutdata]=true;r++;q[r]=p->data;}p=p->next;}}}};voidmain(){link*p;intyn=1;graphg;g.creatlink();while(yn){for(inti=1;i";while(p->next!=NULL){cout";p=p->next;}cout>i;cout>i;cout>yn;}}/*输入图为:图的顶点个数:5逐个输入顶点:abcde边数n:712354678*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询