无向图构造邻接矩阵
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按给定的任一连通无向图构造邻接矩阵,再进行深度优先遍历和广度优先遍历。
#include
using namespace std;
const int MaxSize=5; //无向图的顶点数
const int m=5; //无向图的边数
int vertexNum, arcNum; //顶点数和边数
char vertex[MaxSize]; //顶点数组
int arc[MaxSize][MaxSize]; //邻接矩阵
int visited[MaxSize];
void MGraph(char a[ ], int n, int e)
{
int i,j,k;
vertexNum=n; arcNum=e;
for (i=0; i for (i=0; i for (j=0; j for (k=0; k { cin>>i>>j; //边依附的两个顶点的序号 arc[i][j]=1; arc[j][i]=1; //置有边标志 } } //深度优先遍 //广度优先遍历 int main() { int i; char a[MaxSize]; for (i=0;i cout <<"输入顶点数据:"< for (i=0;i cout <<"依次输入每一条边两个顶点的序号:"< MGraph(a, MaxSize, m); cout <<"深度优先遍历序列为(递归):"< DFSTraverse(0);cout << endl; //for (i=0;i //cout <<"深度优先遍历序列为(非递归):"< //DFSTraverse1(0);cout << endl; for (i=0;i cout <<"广度优先遍历序列为:"< BFSTraverse(0);cout << endl; return 0; }