下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
采用邻接表存储结构实现图的广度优先遍历。采用邻接表存储结构实现图的广度优先遍历。采用邻接表存储结构实现图的广度优先遍历。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年中科大城市规划专业
- 九宫数独题目及答案打印
- 企业内部沟通优化方案
- 企业库内动线优化方案
- 企业晋升通道设计方案
- 企业技术升级方案
- 企业高温作业防护方案
- 上海市闵行区2025-2026学年高二下学期期末联考数学试题(含答案)
- 2026陕西榆林能源集团有限公司社会招聘应往届高校毕业生225人备考题库附答案详解
- 请结合马克思主义基本原理中有关科学社会主义的重要阐述理论联系实际谈一谈你对科学社会主义基本原则的认识(二)
- 2026年中考考前预测卷数学(云南)(含答案)
- 岭南师范学院《数学建模》2025-2026学年第二学期期末试卷(A卷)
- 2026年医院编制考试公共基础知识综合冲刺真题题库(含答案)
- 2026年去2026年重庆中考试卷及答案
- 2025年安徽省初二学业水平地生会考真题试卷(+答案)
- 江苏省兴化市顾庄学区2026届中考数学五模试卷含解析
- 2026年中国临床肿瘤学会结直肠癌诊疗指南版
- 2025-2030中国民宿行业经营现状分析与未来投资价值评估研究报告
- 2025年湖南省技术产权交易所有限责任公司专业岗位招聘4人笔试参考题库附带答案详解
评论
0/150
提交评论