下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
采用邻接表存储结构实现图的广度优先遍历。采用邻接表存储结构实现图的广度优先遍历。采用邻接表存储结构实现图的广度优先遍历。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年广东省揭阳市城管协管人员招聘笔试参考题库及答案详解
- 2026年河北省保定市(中小学、幼儿园)教师招聘考试备考试题及答案详解
- 2026年辽宁省丹东市(中小学、幼儿园)教师招聘考试参考题库及答案详解
- 2026年黄山市徽州区(中小学、幼儿园)教师招聘笔试参考试题及答案详解
- 2026年中国智能家居市场运行态势及投资战略规划报告
- 2026年中国早期教育产业专项调研及十五五投资策略研究报告
- 2026年七台河市桃山区(中小学、幼儿园)教师招聘考试备考题库及答案详解
- 2027年鄂尔多斯职业学院单招职业适应性测试题库及答案一套
- 2026年秋季六年级上册道德与法治教学计划
- 如何预防近视保护眼睛小学主题班会课件
- 2026年兴业银行成都分行暑期职能部门实习生招聘考试备考题库及答案详解
- 2026年秋小学英语四年级上册教学计划及进度表(外研版三起新教材)
- 2026年10月自考14317投资银行理论与实务押题及答案(江苏)
- GA/T 1043-2025智能交通管理系统前端设备运行维护规范
- 厦门港务线上测评
- 2026年春季中国电子技术标准化研究院招聘笔试参考试题及答案详解
- 2025年广州市南沙区事业单位招聘高校毕业生真题
- 语音厅试音文本
评论
0/150
提交评论