- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图广度遍历课程设计报告
目 录
1.需求分析 1
1.1问题描述 1
1.2系统功能 1
2.概要设计 2
2.1 流程图 2
2.2结构体、函数及说明 3
3.详细设计 4
3.1遍历函数设计 4
3.2容错性方法设计 4
3.3生成邻接表设计 5
3.4邻接表遍历设计 6
4.程序源代码 7
5.调试分析和测试结果 16
5.1调试分析 16
5.1调试案例 16
5.3测试过程、结果截图: 17
5.3.1容错性测试: 17
5.3.2无向图(案例一)测试: 20
5.3.3有向图(案例二)测试: 22
6.课程设计总结 24
参考文献 25
1.需求分析
1.1问题描述
(1)对任意给定的图(顶点数和边数自定),建立它的邻接表并输出。
(2)然后利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先有哪些信誉好的足球投注网站遍历。
(3)画出有哪些信誉好的足球投注网站顺序示意图。
1.2系统功能
(1)首先输入图的类型,有向或无向图(因为遍历与权值无关,所以没有涉及带权图)。然后输入图的顶点数、边数和各条边,之后生成该图的邻接表并输出。
(2)再输入要遍历该图的起点,然后从所输入的点广度有哪些信誉好的足球投注网站该图的邻接表,并按遍历顺序输出顶点内容。之后决定是否继续遍历该图或输入另一个需要遍历的图亦或是结束程序。2.概要设计
2.1流程图
是
否
否
是
图 2-1 流程图
2.2结构体、函数及说明
typedef struct ArcNode//邻接表表结点
{
int adjvex;//该弧所指向的顶点位置
struct ArcNode *nextarc;//指向下一条弧的指针
//InfoType *info;//该弧相关信息指针
}ArcNode;
typedef struct VNode//邻接表头结点
{
VertexType data;//结点信息
ArcNode *firstarc;//指向第一条依附该结点的弧的指针
}VNode,AdjList[MAX_VERTEX_NUM];
typedef struct//图
{
AdjList Vertices;//邻接表头结点数组
int vexnum,arcnum;//图的当前顶点数和弧数
int kind;//图的种类标志(有向图:0,无向图:1)
}ALGraph;
void print(int v)//输出顶点信息
int FirstAdjVex(ALGraph G,int u)//在邻接表G中取第u个头结点
void NextAdjVex(ALGraph G,int u,int w)// 在邻接表G中取第u个头结点之后的结点w的下一结点
void BFSTraverse(ALGraph G,queueint Q,bool visited[],int m,int n,void (*Visit)(int))//使用辅助队列Q从邻接表结点m开始n结束广度遍历邻接表图G
3.详细设计
3.1遍历函数设计
void BFSTraverse(ALGraph G,queueint Q,bool visited[],int m,int n,void (*Visit)(int))//使用辅助队列Q从邻接表结点m开始n结束广度遍历邻接表图G
{ //按广度优先非递归遍历图G。使用辅助队列Q和访问标志数组visited。
while(!Q.empty()) Q.pop();//置空的辅助队列Q
for(int v=m;vn;++v)
if(!visited[v])//如果v尚未访问
{
visited[v]=true;
Visit(v);//访问v
Q.push(v);//v入队列
while(!Q.empty())
{
int u = Q.front();
Q.pop();//对头元素出队并置为u
for( int w = FirstAdjVex(G,u); w = 0; w = NextAdjVex(G,u,w))//从以u为头结点的邻接表开始遍历到链表中的最后一个结点
if(!visited[w])//w为u的尚未访问的邻接结点
{
visited[w]=true;
Visit(w);//访问w
Q.push(w);//w入队列
}//if
}//while
}//if
}//BFSTraverse*/
3.2容错性方法设计
cout\n请输入图的弧
您可能关注的文档
最近下载
- 天津财经大学2024届毕业生就业质量报告.pdf VIP
- 部编人教版五年级数学上册《小数乘法(全章)》PPT教学课件.ppt VIP
- 数字集成电路部分课后习题chapter11ex.pdf VIP
- 安全通信与安全通信标准EN50159.pdf VIP
- 消防安全管理方案.docx VIP
- 锂电池储能系统技术协议.docx VIP
- 四年级数学下册《每日一练》全52套.pdf VIP
- 2025年福建厦门海关口岸门诊部招聘检验检测岗8人笔试附带答案详解.docx VIP
- 部编版语文四年级上册全册教案.pdf VIP
- DB37_T 4614.2-2023 “爱山东”政务服务平台移动端 第2部分:运营管理规范.docx VIP
文档评论(0)