- 8
- 0
- 约1.12万字
- 约 26页
- 2018-04-15 发布于浙江
- 举报
[2018年最新整理]图的广度遍历____课程设计报告
目 录
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请输入图的弧
您可能关注的文档
- [2018年最新整理]国内外我国智能电网发展.ppt
- [2018年最新整理]国内引进日本动画赏析.doc
- [2018年最新整理]国内知识管理现状.docx
- [2018年最新整理]国内著名活动策划公司介绍.doc
- [2018年最新整理]国创申请表(定稿).doc
- [2018年最新整理]国土资源综合统计报表制度.doc
- [2018年最新整理]国外光伏逆变器知名品牌一览表.docx
- [2018年最新整理]国外建筑工程造价管理.doc
- [2018年最新整理]国外物业管理模式.ppt
- [2018年最新整理]国外数学期刊.doc
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 2023大型娱乐场所综合能源服务项目规划设计典型案例.docx VIP
- 2023科技园区综合能源服务项目规划设计典型案例.pdf VIP
- 2023商业综合体综合能源服务项目规划设计典型案例1.pdf VIP
- 三槐堂王氏族谱辈份.docx VIP
- 半导体产业半导体功率器件市场研究报告.doc VIP
- (学习资料)综合能源服务项目规划设计典型案例.docx VIP
- 近代日本宫中势力的国体论与立宪中的君权定位——以岩仓具视为中心考察_张艳茹.pdf VIP
- 认识日本之一:从丰臣秀吉到吉田松阴.pdf VIP
- 安川变频器技术手册V1000 中文.pdf VIP
- 2023医院类综合能源服务项目典型设计案例.pdf VIP
原创力文档

文档评论(0)