下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
采用邻接表存储结构实现图的广度优先遍历。采用邻接表存储结构实现图的广度优先遍历。采用邻接表存储结构实现图的广度优先遍历。V:1.0精细整理,仅供参考采用邻接表存储结构实现图的广度优先遍历。日期:20xx年X月课程设计题目九:图的广度优先遍历基本要求:采用邻接表存储结构实现图的广度优先遍历。(2)对任意给定的图(顶点数和边数自定),建立它的邻接表并输出;(3)实现图的广度优先遍历*/#include<>#include<>#include<>#defineMAX_NUM20intvisited[MAX_NUM]={0};typedefintVertexType;typedefenum{DG=1,UDG}GraphKind;typedefstructArcNode{ intadjvex; intweight; structArcNode*nextarc; ArcNode*info;}ArcNode;typedefstructVNode{ VertexTypedata; ArcNode*firstarc;}VNode,AdjList[MAX_NUM];typedefstruct{ AdjListvertices; intvexnum,arcnum; GraphKindkind;}ALGraph;voidPRIN(ALGraph&G);voidCreat_adjgraph(ALGraph&G);voidbfs(ALGraph&G,intv);voidCreat_adjgraphDG(ALGraph&G);voidCreat_adjgraphUDG(ALGraph&G);voidCreat_adjgraph(ALGraph&G);voidCreat_adjgraphDG(ALGraph&G){ inti,s,d; ArcNode*p=NULL,*q=NULL;=DG; printf("请输入顶点数和边数:"); scanf("%d%d",&,&; for(i=0;i<;++i) { printf("第%d个顶点信息:",i+1); scanf("%d",&[i].data); [i].firstarc=NULL;} for(i=0;i<;++i) { printf("第%d条边的起始顶点编号和终止顶点编号:",i+1); scanf("%d%d",&s,&d); while(s<1||s>||d<1||d> { printf("编号超出范围,重新输入"); scanf("%d%d",&s,&d);} s--; d--; p=new(ArcNode); p->adjvex=d; p->nextarc=[s].firstarc; [s].firstarc=p; }}voidCreat_adjgraphUDG(ALGraph&G){ inti,s,d; ArcNode*p,*q; =UDG; printf("请输入顶点数和边数:"); scanf("%d%d",&,&; for(i=0;i<;++i) { printf("第%d个顶点信息:",i+1); scanf("%d",&[i].data); [i].firstarc=NULL;} for(i=0;i<;++i) { printf("第%d条边的起始顶点编号和终止顶点编号:",i+1); scanf("%d%d",&s,&d); while(s<1||s>||d<1||d> { printf("编号超出范围,重新输入"); scanf("%d%d",&s,&d);} s--; d--; p=new(ArcNode); p->adjvex=d; p->nextarc=[s].firstarc; [s].firstarc=p; q=new(ArcNode); q->adjvex=s; q->nextarc=[d].firstarc; [d].firstarc=q; }}voidPRIN(ALGraph&G){ inti; ArcNode*p; if==DG||==UDG) { for(i=0;i<;++i) { printf("V%d:",[i].data); p=[i].firstarc; while(p!=NULL) { printf("%d\t",p->adjvex+1); p=p->nextarc;} printf("\n");} }}voidbfs(ALGraph&G,intv){ v--; ArcNode*p; intqueue[MAX_NUM],front=0,rear=0; intw,i; for(i=0;i<;i++)visited[i]=0; printf("%4d",v+1); visited[v]=1; rear=(rear+1)%MAX_NUM; queue[rear]=v; while(front!=rear) { front=(front+1)%MAX_NUM; w=queue[front]; p=[w].firstarc; while(p!=NULL) { if(visited[p->adjvex]==0) { printf("%3d",p->adjvex+1); visited[p->adjvex]=1; rear=(rear+1)%MAX_NUM; queue[rear]=p->adjvex;} p=p->nextarc;} } printf("\n");}voidCreat_adjgraph(ALGraph&G){ printf("1:有向图2:无向图\n"); printf("请根据上述提示输入图的类型:" ); scanf("%d",&; switch { caseDG:Creat_adjgraphDG(G);PRIN(G);break; caseUDG:Creat_adjgraphUDG(G);PRIN(G);break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年三级营养师考试单选题练习(附答案)
- 景观石吊装技术交底
- 2026年区域土壤学试题及答案
- 应急发电应急演练脚本
- 矿山冒顶事故现场处置方案
- 2026年数字信号处理与设计能力测试试卷及答案
- 2026重庆绿发实业集团有限公司招聘9人农业考试备考试题及答案解析
- 2026重庆市子漫人力资源服务有限公司卫服医院管理分公司招聘农业考试备考题库及答案解析
- 2026湖北教师招聘统考枝江市48人农业考试备考试题及答案解析
- 2026湖南长沙市第四医院(长沙市中西医结合医院)招聘工作人员41人农业笔试备考试题及答案解析
- 2025年高中创新能力大赛笔试题资格审查试题(附答案)
- 双注射泵更换去甲肾上腺素技术操作SOP
- 结构概念分析与ANSYS程序实现-同济大学中国大学mooc课后章节答案期末考试题库2023年
- 电厂扩建工程锅炉主钢架垂直度偏差控制QC成果
- 隔油池化粪池清理方案
- 2022年上海市闵行区七宝镇社区工作者招聘考试真题及答案
- 量子力学-81电子自旋态与自旋算符
- 《传热学》第7章 凝结与沸腾传热
- 数模和模数转换器-课件
- 小学生血液知识讲座课件
- 工地各班组班前安全喊话记录表
评论
0/150
提交评论