无向图的深度优先遍历操作解读.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息工程学院《数据结构》课程设计报告设计题目 无向图的深度优先遍历操作 专 业 班 级 小 组 成 员 题目:无向图的深度优先遍历操作小组任务分工共同编写三、设计目标帮助学生熟练掌握图的遍历循环。问题描述为了实现图的深度优先遍历操作概要设计void createGraph(int (*edge)[VERTEXNUM],int start, int end);//创建图函数void displayGraph(int (*edge)[VERTEXNUM]);void DFT(int (*edge)[VERTEXNUM],int* vertexStartusArr);//图的深度优先遍历函数void DFTcore(int (*edge)[VERTEXNUM],int i,int* vertexStatusArr);详细设计(程序代码及核心代码流程图)#includestdio.h#includemalloc.h#defineVERTEXNUM 5//函数声明void createGraph(int (*edge)[VERTEXNUM],int start, int end);void displayGraph(int (*edge)[VERTEXNUM]);void DFS(int (*edge)[VERTEXNUM],int* vertexStartusArr);void DFScore(int (*edge)[VERTEXNUM],int i,int* vertexStatusArr);void createGraph(int (*edge)[VERTEXNUM],intstart,intend) //写入数据 1 创建结点位置存进数组{edge[start][end] = 1;}void displayGraph(int (*edge)[VERTEXNUM])//打印存储的图{int i,j;for(i=0;iVERTEXNUM;i++){for(j=0;jVERTEXNUM;j++){printf( %d,edge[i][j]);}printf(\n);}}//深度优先遍历void DFS(int (*edge)[VERTEXNUM],int* vertexStatusArr){int i;printf(深度遍历循环后的结果:\n);for(i=0;iVERTEXNUM;i++){DFScore(edge,i,vertexStatusArr);//调用}printf(\n);}void DFScore(int (*edge)[VERTEXNUM],inti,int* vertexStatusArr)//核心{ int j;if(vertexStatusArr[i]== 1){return; //返回到函数结束}printf(%d,i);//打印数字vertexStatusArr[i] = 1;for(j=0;jVERTEXNUM;j++){if(edge[i][j] == 1){DFScore(edge,j,vertexStatusArr);}}}int main(void){//动态创建存放边的二维数组int (*edge)[VERTEXNUM] =(int (*)[VERTEXNUM])malloc(sizeof (int)*VERTEXNUM*VERTEXNUM);int i,j;for(i=0;iVERTEXNUM;i++)//初始化矩阵{for(j=0;jVERTEXNUM;j++){edge[i][j]=0;}}//存放顶点的遍历状态,0:未遍历,1:已遍历int* vertexStatusArr =(int*)malloc(sizeof(int)*VERTEXNUM);for(i=0;iVERTEXNUM;i++){vertexStatusArr[i] = 0;}printf(初始化后:\n);displayGraph(edge);//打印存储的图createGraph(edge,0,3); //创建结点位置存进数组createGraph(edge,3,0);createGraph(edge,0,4);createGraph(edge,4,0);createGraph(edge,3,1);createGraph(edge,1,3);createGraph(edge,3,2);createGraph(edge,2,3);createGraph(edge,4,1);createGraph(edge,1,4);printf(图创建后的矩阵:\n);displayGraph(edge);DFS(edge,vertexStatusArr);//深度优先遍历fr

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档