图遍历的演示实验报告书.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.实验题目 图遍历的演示 2.需求分析 本演示程序用VC++6.0编写,以邻接矩阵为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列。 ①输入形式:要先输入顶点个数和边的条数,然后依次输入顶点的值,再输入每条边两端的值; ②输出形式:输出无向图的邻接矩阵,深度优先遍历序列及广度优先遍历序列。 ③测试数据: 测试结果: 3.概要设计 class WXT {    数据对象:tu={ ddxl[maxsize], juzhen[maxsize][maxsize], n, bian }   Bianwz(WXT tu,char v)   操作结果:寻找V的位置   GZWTU(WXT tu)   操作结果:数组邻接矩阵表示法构造无向图   DYljdd(WXT tu,int i)   初始条件:图已存在   操作结果:顶点下标为i的顶点的第一个邻接顶点   XYdd(WXT tu,int i,int k)    初始条件:图已存在   操作结果:顶点下标为i的顶点相对于k的下一个顶点,k为i的当前邻接顶点,二者都是顶点下标   SDbl(WXT tu,int v)   操作结果:无向图的深度优先遍历,从第v个顶点出发,v为顶点下标 SDbl_V(WXT tu,int vex) 操作结果:从vex开始深度遍历图 GDbl(WXT tu,int a) 操作结果:无向图的广度遍历,从第v个顶点出发,v为顶点下标 2)本程序包含8个函数:   ① 主函数main()   ②图的基本操作,寻找V的位置函数Bianwz(WXT tu,char v)   ③构造无向图函数GZWTU(WXT tu)   ④邻接顶点操作函数DYljdd(WXT tu,int i)   ⑤邻接顶点操作函数XYdd(WXT tu,int i,int k)   ⑥深度优先遍历函数SDbl(WXT tu,int v)   ⑦从vex开始深度遍历图函数SDbl_V(WXT tu,int vex) ⑧广度优先遍历函数GDbl(WXT tu,int a) 各函数间关系如下: 4.详细设计 #includeiostream #includequeue using namespace std; queueintq; //---------------------------------------------------------------- class WXT //无向图的邻接矩阵类型 { public: int Bianwz(WXT tu,char v);//图的基本操作,寻找V的位置 int GZWTU(WXT tu);//数组邻接矩阵表示法构造无向图 int DYljdd(WXT tu,int i);//顶点下标为i的顶点的第一个邻接顶点 int XYdd(WXT tu,int i,int k);//顶点下标为i的顶点相对于k的下一个顶点,k为i的当前邻接顶点,二者都是顶点下标 void SDbl(WXT tu,int v);//无向图的深度优先遍历,从第v个顶点出发,v为顶点下标 void SDbl_V(WXT tu,int vex);// 从vex开始深度遍历图 int GDbl(WXT tu,int a);//无向图的广度遍历,从第v个顶点出发,v为顶点下标 char ddxl[maxsize];//顶点向量// AdjMatrix int juzhen[maxsize][maxsize];//邻接矩阵 int n;//顶点数 int bian; //边数 }; WXT tu; //申明一个无向图的邻接矩阵类型 int biaozhi[maxsize];//设置标志数组 int WXT::Bianwz(WXT tu,char v)//图的基本操作,寻找V的位置 { int i=0; while(itu.n v!=tu.ddxl[i]) i++; if(itu.n) return i;//查找成功则返回顶点的下标 else return -1; } int WXT::GZWTU(WXT tu) //数组邻接矩阵表示法构造无向图 { char v1,v2; cout请输入图的顶点数和边数:endl; cintu.ntu.bian; cout请输入tu.n个顶点值:endl; for(int i=0;itu.n;i++)//构造顶点向量 cintu.ddxl[i]; for(int

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档