求高手 帮忙改一下 广度遍历的 错误
来源:互联网 发布:语音网络系统新生注册 编辑:程序博客网 时间:2024/05/01 18:22
最近在写图的一些程序 写了一个关于 图的广度遍历算法 图是用 邻接矩阵 存储的 代码如下 :希望各位高手帮忙改一下 谢谢:
#include"iostream.h"
#include<deque>
const int M=100;
struct Arcell{
int adj;// 权值或表示 点的连接情况
char * info;//边上的信息
};
struct graph{
int v[M];//顶点表数组
Arcell arcs[M][M];//邻接矩阵
int vexnum;//顶点数
int arcmun;//边数
int kind;//图形种类
};
class Graph{
public:
graph G;//创建图
bool visited[M];//图的访问参数
void creatgraph();//创建图的函数
void wfs();//广度搜索 出错的地方
};
void Graph::creatgraph(){
cin>>G.arcmun>>G.vexnum>>G.kind;//输入边数。顶点数。与种类。
for(int i=0;i<G.vexnum;i++)
cin>>G.v[i];//输入顶点参数
for( i=0;i<G.vexnum;i++)
for(int j=0;j<G.vexnum;j++){
G.arcs[i][j].adj=0;
G.arcs[i][j].info=false;
}
for(i=0;i<G.arcmun;i++){
int a,b;
cin>>a>>b;
G.arcs[a][b].adj=1;
G.arcs[b][a].adj=1;
}
}
void Graph::wfs(){
for(int i=0;i<G.vexnum;i++)
visited[i]=false;
deque<int> Q;// 出错的地方 错误为'deque' : undeclared identifier , 'int' unexpected
for(int j=0;j<G.vexnum;j++){
if(!visited[j]){
visited[j]=true;
cout<<G.v[j];
Q.push_front(G.v[j]);//出错的地方 E:/jgj/jg.cpp(67) : error C2228: left of '.push_front' must have class/struct/union type
while(!Q.empty()){//E:/jgj/jg.cpp(68) : error C2228: left of '.empty' must have class/struct/union type
int a=Q.front();//出队 加上找到 该节点 在 定点数组 中的下标
int k;
for(int i=0;i<G.vexnum;i++){//锁定 出队元素 在顶点数列 中的下标
if(G.v[i]==a){
k=i;
break;
}//k为 出队元素在 v[M]中的下表
Q.pop_front();
for(int n=0;n<G.vexnum;n++){
if(G.arcs[k][n]==1&&!visited[n]){
cout<<G.v[n];
visited[n]=true;
Q.push_back(G.v[n]);
}
}
}
}
}
int main(){
Graph b;
b.creatgraph();
b.wfs();
return 0;
}
- 求高手 帮忙改一下 广度遍历的 错误
- 高手帮忙解决一下
- 高手帮忙指指错误在哪,怎么改
- 求HTML 5的高手帮忙
- vb求高手帮忙!
- 高手帮忙指指怎么改
- 求各路C高手帮忙
- 求高手帮忙解答下
- 高手帮忙 求个复杂的sql语句
- handleJspException 错误,请高手帮忙
- 项目里遇到的错误,望高手帮忙解决
- 高手请帮忙改改错!----cuda
- 有没有高手在,帮忙修改一下
- 高手帮忙找一下 c语言语法错误
- 不明白的错误!各位帮忙一下!谢了!
- 求高手们来帮忙看看
- 求SQL高手帮忙建一个触发器
- 求高手帮忙关于window.event事件
- top 4bonuses-2-
- 自学真的很枯燥
- 敲出精彩
- 再发一个assignment
- 大家好
- 求高手 帮忙改一下 广度遍历的 错误
- 每天进步一点点
- C语言头文件的使用与写法(转贴)
- JAVA学习
- servlet&&jsp
- C++
- no.2
- 下午做了个“自动补全”的小例子
- 任务