图的应用——深度优先遍历和广度优先遍历

图的应用——深度优先遍历和广度优先遍历

ID:39484636

大小:57.01 KB

页数:4页

时间:2019-07-04

图的应用——深度优先遍历和广度优先遍历_第1页
图的应用——深度优先遍历和广度优先遍历_第2页
图的应用——深度优先遍历和广度优先遍历_第3页
图的应用——深度优先遍历和广度优先遍历_第4页
资源描述:

《图的应用——深度优先遍历和广度优先遍历》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、华北水利水电大学数据结构实验报告2013~2014学年第二学期2013级计算机科学与技术(专升本)专业班级:学号:姓名:实验四图的应用一、实验题目:图的应用——深度优先/广度优先搜索遍历二、实验内容:很多涉及图上操作的算法都是以图的遍历操作为基础的。试编写一个算法,实现图的深度优先和广度优先搜索遍历操作。要求:以邻接矩阵或邻接表为存储结构,以用户指定的顶点为起始点,实现连通无向图的深度优先及广度优先搜索遍历,并输出遍历的结点序列。(注:学号为奇数的同学使用邻接矩阵存储结构实现,学号为偶数的同学使用邻接矩阵实现)提示:首先,根据用户输入的顶点总数和边数,构造无向图,然后以用户输入

2、的顶点为起始点,进行深度优先、广度优先搜索遍历,并输出遍历的结果。三、程序源代码:#include#include#include#defineMAX_VERTEX_NUM20typedefstructArcCell{intadj;}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct{charvexs[MAX_VERTEX_NUM];AdjMatrixarcs;intvexnum,arcnum;}MGraph;typedefstructQue

3、ue{char*front;char*rear;}Queue;boolvisited[MAX_VERTEX_NUM]={false};voidInitQueue(Queue&Q){//初始化队列Q.front=Q.rear=(char*)malloc(MAX_VERTEX_NUM*sizeof(char));if(!Q.front)exit(0);}voidEnQueue(Queue&Q,charv){//入队列*Q.rear=v;Q.rear++;第4页共4页}voidDeQueue(Queue&Q,char&u){//出队列u=*Q.front;Q.front++;}boo

4、lQueueEmpty(QueueQ){//判定队列是否为空if(Q.rear-Q.front)returnfalse;returntrue;}intLocateVex(MGraphG,charv){//找出顶点v在图G中的位置并返回for(inti=0;i

5、数printf("开始输入顶点的值");getchar();for(i=0;i

6、;scanf("%c%c",&v1,&v2);getchar();i=LocateVex(G,v1);j=LocateVex(G,v2);//确定顶点v1,v2在图G中的位置G.arcs[i][j].adj=1;G.arcs[j][i]=G.arcs[i][j];}return1;}intFirstAdjVex(MGraphG,intv){//for(inti=0;i

7、w+1;i=0;w=NextA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。