- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C面向对象程序设计课设报告无向图的深度与广度的遍历研讨
目 录
一、题目概述(内容及要求) 4
二、功能分析 5
三、设计 6
四、运行与测试 9
五、总结 11
参考文献 12
附录....................................................12
一、题目概述(内容及要求)
1.深度优先搜索
深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。
假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可从图中某个顶点v0出发,访问此顶点,然后依次从v的未访问的邻接点出发深度优先遍历,直至图中所有和v有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点,重复上述过程,直至所有的顶点都被访问。
2.广度优先搜索
广度优先搜索遍历类似于树的按层次遍历的过程。
假设从图中某顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻接点都被访问到。若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点,重复上述过程,直至所有的顶点都被访问
实现无向连通图的深度与广度遍历。
要求:1.设计数据结构,存储结构;
2.在c兼容环境完成上述题目的代码编写与调试;
3.程序运行界面交互性好;
4.软件运行,给出测试数据。
二、功能分析
1.深度优先搜索:
如图2.1所示,假设从顶点v1出发,进行搜索,在访问了顶点v1之后,选择邻接点v2,。因为v2未曾访问,则从v2出发进行搜索。以次类推,接着从v4,v8,v5出发进行搜索。在访问了v5之后,由于v5的邻接点都已被访问,则搜索回到v8.由于同样的理由,搜索继续回到v4,v2,直到v1,此时由于v1的另一个结点未被访问,则搜索又从v1到v3,再继续进行下去。由此,得到的顶点访问顺序为:v1-v2-v4-v8-v5-v3-v6-v7
算法:
void DFS(Graph G,int v)
{
//从第v个顶点出发递归深度优先遍历图。
visited[v]=TRUE;
VisitFunc(v); //访问第v个顶点
for(w=FirstAdjVex(G,v);w=0;w=NextAdjVex(G,v,w))
if(!visited[w])
DFS(G,w);//对v的尚未访问的邻接顶点w递归调用DFS
}
图2.1
2.广度优先搜索:
如图2.1所示,假设从顶点v1出发,进行搜索,首先访问顶点v1和v1的邻接点v2和v3,然后依次访问v2的邻接点v4和v5及v3的邻接点v6和v7,最后访问v4的邻接点v8. 由于这些顶点的邻接点均已被访问,并且图中所有顶点都已被访问,由此,完成了图的遍历。得到的顶点访问序列为v1-v2-v3-v4-v5-v6-v7-v8
算法:
void BFSTraverse(Graph G,Status(*Visit)(int v))
{
//按广度优先非递归遍历图G,使用辅助队列Q和访问标志数组visited。
for(v=0;vG.vexnum;++v)
visited[v]=FALSE;
InitQueue(Q); //置空的辅助队列Q
for(v=0;vG.vexnum;++v)
if(!visited[v]) //v尚未访问
{
visited[v]=TRUE;visit[v];
EnQueue(Q,v); //v入队列
while(!QueueEmpty(Q))
{
DeQueue(Q,u); //队头元素出列并置为u
for(w=FirstAdjVex(G,u);w=0;w=NextAdjVex(G,u,w))
if(!Visited[w]) //w为u的尚未访问的邻接顶点
{
Visited[w]=TRUE; Visit(w);
EnQueue(Q,w);
}
}
}
}
三、设计
3.1 总体设计
采用邻接矩阵作为图的存储结构。程序中主要用到以下抽象数据类型:
抽象数据类型的定义
typedef struct{ char *vexs; //顶点向量
int arcs[MAX_VEX][MAX_VEX]; //邻接矩阵
int vexnum,arcnum; //图的当前顶点数和弧数
}Graph;
基本操作
CreateUDN(Graph
您可能关注的文档
- 8植物生长生理研讨.ppt
- 8绩效管理研讨.ppt
- 8绿色食品包装贮运研讨.ppt
- 8羰基化过程研讨.ppt
- 8讨论议题研讨.doc
- 8级U9说课2015.3.30研讨.ppt
- 8讲:新闻传播法规的基础知识研讨.ppt
- 8路基路面强度指标检测研讨.ppt
- 9,第九讲:电子政府研讨.ppt
- 8远离癌症健康生活研讨.ppt
- 注册验船师高频真题题库2025.docx
- 注册验船师高频题库带解析2025.docx
- 注册验船师考试必备资料2025.docx
- 注册验船师精选题库带分析2025.docx
- 注册验船师考前冲刺必刷题附答案2025.docx
- 新高考生物二轮复习讲练测第10讲 人体的稳态与免疫调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第13讲 生物技术与工程(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第7讲 遗传的基本规律与伴性遗传(检测)(原卷版) .docx
- 新高考生物二轮复习讲练测第13讲 生物技术与工程(检测)(原卷版).docx
最近下载
- 课题申报书:美育浸润一体化共建行动研究.docx VIP
- 人工智能生成内容(AIGC)研究综述:国际进展与热点议题.pdf VIP
- 课题申报参考:“浸润”指向下湖北省大中小学美育一体化研究.docx VIP
- (二模)2025年广州市普通高中毕业班综合测试(二)地理试卷(含答案).docx
- 网约车商业计划书.docx VIP
- DB11_T 455-2021 动物疫病紧急流行病学调查技术规范.pdf
- 网约车商业计划书.docx VIP
- 北洋军阀统治时期.pptx VIP
- 【2019年整理】新HSK考试4级试题样卷听力材料及答案.doc VIP
- 省级优秀课件大象版小学心理健康六年级《我的情绪我做主》.pptx
文档评论(0)