




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上机实验报告 学 院: 计算机与信息技术学院专 业: 计算机科学与技术(师范)课程名称: 数据结构实验题目:广度优先遍历(邻接表)班级序号: 师范1班学 号: 201421012731 学生姓名: 邓雪指导教师: 杨红颖完成时间: 2015年12月25号1、 实验目的:1掌握图的基本概念和邻接表存储结构。2掌握图的邻接表存储结构的算法实现。 3掌握图在邻接表存储结构上遍历算法的实现。二、实验环境: Windows 8.1 Microsoft Visual c+ 6.02、 实验内容及要求:编写图的广度优先遍历算法。四、概要设计:先定义图的邻接表数据,建立该图的邻接表,然后在用子函数写出广度优先搜索遍历的遍历算法,最后用主函数调用它们。 实现广度优先搜索遍历可以利用队列的原理。利用队列先进先出的特性,并设置访问标志实现连通图的广度优先搜索遍历。 广度优先搜索遍历类似于树的按层次遍历,对于用邻接表做存储结构的图,从某个给定顶点出发的图的遍历得到的访问结点顶点次序,随建立的邻接表的不同而可能不同。 将每个结点的边用一个单边表链接起来组成一个整体。所有头结点可看成一个一维数组,即邻接表所有链表中结点数目的一半为图中边数。占用的存储单元数目为n+2e。 抽象算法描述: (1)访问顶点i,并将其访问标志置为已被访问,即visitedi=true。(2)依次访问与标点i有边相连的所有顶点w1,w2-wt。(3)再按次序访问与w1,w2-wt有边相连且未曾访问过的顶点。(4)依此类推,直到图中所有顶点都被访问完。五、代码:#include #include #define maxsize 1024#define n 8#define e 9typedef char datatype;typedef char vextype;/定义结构体typedef structint datamaxsize;int front,rear;sequeue;/定义结构体typedef struct nodedatatype adjvex;struct node *next;edgenode;/定义结构体typedef structvextype vertex; edgenode *link;vexnode;sequeue *Q;vexnode gan;int visitedn;sequeue *sq;/建立无向图的邻接表void CREATADJLIST(vexnode ga)int i,j,k;edgenode *s;printf(读入树的结点信息:);for(i=0;in;i+)gai.vertex=getchar();gai.link=NULL;printf(读入边(vi,vj)的顶点对序号:);for(k=0;kadjvex=j;s-next=gai.link;gai.link=s;s=(edgenode *)malloc(sizeof(edgenode);s-adjvex=i;s-next=gaj.link;gaj.link=s;/置空队void SETNULL(sequeue *sq)sq-front=maxsize-1;sq-rear=maxsize-1;/判队空int EMPTY(sequeue *sq)if(sq-rear=sq-front)return 1;elsereturn 0;/入队int ENQUEUE(sequeue *sq,datatype x)if(sq-front=(sq-rear+1)%maxsize)printf(queue is full);return NULL;elsesq-rear=(sq-rear+1)%maxsize;sq-datasq-rear=x;return 1;/出队datatype DEQUEUE(sequeue *sq)if(EMPTY(sq)printf(queue is empty);return NULL;elsesq-front=(sq-front+1)%maxsize;return (sq-datasq-front);/广度优先遍历void BFSL(int k)int i;edgenode *p;Q=(sequeue *)malloc(sizeof(sequeue);SETNULL(Q);printf(%cn,gak.vertex);visitedk=1;ENQUEUE(Q,k);while(!EMPTY(Q)i=DEQUEUE(Q);p=gai.link;while(p!=NULL)if(!visitedp-adjvex)printf(%cn,gap-adjvex.vertex);visitedp-adjvex=1;ENQUEUE(Q,p-adjvex);p=p-next;void main()CREATADJLIST(ga);BFSL(0);六、运行界面七、实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省温州市苍南县龙港市青华学校2024-2025学年七年级下学期6月期末数学试题(含部分答案)
- 广西南宁市部分学校2024-2025学年高一下学期期末教学质量监测 化学试题(含答案)
- 甘肃省百师联盟2024-2025学年高二下学期期末考试数学试题(含部分答案)
- 少先队员演讲稿范文
- 汉字单人旁的演变课件
- 2025协商解除劳动合同书
- 2024年秋新北师大版数学一年级上册教学课件 第二单元 5以内数加与减 第4课时 还剩下多少
- 实验小学交通安全应急预案10篇
- 水表井安全知识培训总结课件
- 建筑施工现场噪音控制方案
- 2025年职工技能大赛考核试题及答案
- 2025年中国邮政集团工作人员招聘考试笔试试题(含答案)
- 规范大件运输管理制度
- 药学处方审核培训
- T-MSC 005-2024 灵芝孢子油生产加工技术规范
- 职业院校班主任辅导员培训
- 贸易意向合作协议书范本
- 校园活动讲安全
- DB37T 5230-2022 岩棉复合板外墙外保温系统应用技术规程
- 外科腹腔镜手术护理
- 浅析立体心何模块在新高考中的命题方向研究课件高三数学一轮复习
评论
0/150
提交评论