#include "Graph.h"
#include <iostream>
#include <queue>
using namespace std;
int(*Fvist)(int v);
bool visted[N];
void Graph::CreatGraph(MGraph &G)
{
cout<<"输入顶点数量:";
cin>>G.vexnum;
cout<<"输入邻接矩阵:"<<endl;
G.arcs=new int*[G.vexnum];
for(int i=1;i<=G.vexnum;i++)
{
G.arcs[i]=new int[G.vexnum];
for(int j=1;j<=G.vexnum;j++)
{
cout<<"<"<<i<<","<<j<<">=";
cin>>G.arcs[i][j];
}
}
/* G.vexnum=5;
G.arcs=new int*[G.vexnum];
for(int i=1;i<=G.vexnum;i++)
{
G.arcs[i]=new int[5];
for(int j=1;j<=G.vexnum;j++)
{
G.arcs[i][j]=0;
}
}
G.arcs[1][2]=1;
G.arcs[2][3]=1;
G.arcs[2][5]=1;
G.arcs[5][1]=1;
G.arcs[5][4]=1;*/
}
void Graph::DFSTraverse(MGraph G,int(*vist)(int v))
{
Fvist=vist;
for(int i=1;i<=G.vexnum;i++)
visted[i]=false;
for(i=1;i<=G.vexnum;i++)
if(!visted[i])
DFS(G,i);
}
void Graph::DFS(MGraph G,int v)
{
visted[v]=true;
Fvist(v);
for(int i=1;i<=G.vexnum;i++)
{
if(G.arcs[v][i]&&!visted[i])
{
DFS(G,i);
}
}
}
void Graph::BFSTraverse(MGraph G,int(*vist)(int v))
{
Fvist=vist;
queue<int>Q;
int p;
for(int i=1;i<=G.vexnum;i++)
visted[i]=false;
if(!visted[1])
{
Q.push(1);
visted[1]=true;
}
while(!Q.empty())
{
p=Q.front();
vist(p);
Q.pop();
for(int j=1;j<=G.vexnum;j++)
{
if(G.arcs[p][j]&&!visted[j])
{
Q.push(j);
visted[j]=true;
}
}
}//endwhile
}
tulun.rar_graph theory
版权申诉
10 浏览量
2022-09-14
18:23:26
上传
评论
收藏 656KB RAR 举报
四散
- 粉丝: 52
- 资源: 1万+
最新资源
- 基于STM32单片机空气监测系统设计源码+详细文档+配套全部资料(毕业设计).zip
- rdf0412-kcu116-pcie-c-2019-1.zip(XILINX KCU116 源码)
- 基于C#语言的winform界面火车票订票系统(源码+实验报告)
- 【华为OD部分真题及讲解】华为OD部分真题及讲解
- 基于Python+Django的京东商品比价系统源码+全部资料(毕业设计).zip
- G460 G560 Z460 Z560的最新BIOS 2.18版(无白名单)
- MetaJUI v0.4
- 基于Python+Django的京东商品比价系统源码+全部资料(毕业设计).zip
- linux常用命令大全
- 立体相机标定-使用OpenCV+Cpp对立体相机进行标定-calibration-附项目源码+流程教程-优质项目实战.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈