全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#include#define M 50typedef char vextype;/顶点数据类型chartypedef struct node /定义表结点类型int adjvex;/邻接点域struct node *link;/指针域edgenode,*Edgenode;typedef struct headnode/定义表头结点类型vextype vexdata;/顶点数据域struct node *firstarc;/指针域指向链表中的第一个结点vexnode,*Vexnode;typedef vexnode adjlistM;/adjlist为邻接表类型/无向图的邻接表生成算法void creatlist1(vexnode ag,int n)edgenode *p;int i,j;char ch;coutn;for(i=1;i=n;i+)cout第ich;/读入顶点信息agi.vexdata=ch;/设顶点为字符型agi.firstarc=NULL;/将每个链表初始化为空cout以(0,0)为输入结束符endl;coutij;while(i0)&(j0)/输入的(i,j)为(0,0)作为结束符号p=(edgenode*)malloc(sizeof(edgenode);/生成邻接序号为j的表结点p-adjvex=j;p-link=agi.firstarc;agi.firstarc=p;/结点j插入到第i个链表p=(edgenode*)malloc(sizeof(edgenode);/生成临界点序号为i的表结点p-adjvex=i;p-link=agj.firstarc;agj.firstarc=p;/结点i插入到第j个链表的头部coutij;/再次输入下一条边的两个顶点序号/*creatlist1*/有向图邻接表生成算法void creatlist2(vexnode ag,int n)edgenode *p;int i,j;char ch;coutn;for(i=1;i=n;i+)cout第ich;/读入顶点信息agi.vexdata=ch;/设顶点为字符型agi.firstarc=NULL;/将每个链表初始化为空cout以(0,0)为输入结束符endl;coutij;while(i0)&(j0)/输入的(i,j)为(0,0)作为结束符号p=(edgenode*)malloc(sizeof(edgenode);/生成邻接序号为j的表结点p-adjvex=j;p-link=agi.firstarc;agi.firstarc=p;/结点j插入到第i个链表coutij;/再次输入下一条边的两个顶点序号/*creatlist2*/void DFS(vexnode ag,int v,int flag)/从序号为v的顶点对图进行深度优先遍历edgenode *p;int i;flagv=1; coutagv.vexdataadjvex;/取出p指针所指向的邻接点的序号if(flagi=0)DFS(ag,i,flag);/对尚未被访问的邻接点递归调用DFS算法进行深度优先遍历p=p-link;/查找下一个邻接点/*DFS*/void blt(vexnode ag,int n)/对图按深度优先遍历搜索int i;int flagM;for(i=1;i=n;i+)flagi=0;/初始化标志组flagfor(i=1;i=n;i+)if(flagi=0)DFS(ag,i,flag);/调用深度优先算法DFSvoid BFS(Vexnode g,int v,int c)/对图进行广度遍历int qM,r=0,f=0;Edgenode p;cv=1;coutgv.vexdata ;q0=v;while(fadjvex;if(cv=0)cv=1;coutgv.vexdatalink;/*BFS*/void main()int n=0,j,k,kind,i;char flag=y; int fM;vexnode v1M,v2M; while(flag=y)cout请选择图的种类(1代表有向图,2代表无向图)kind;/输入图的种类switch(kind)case 1:cout-创建有向图-endl; creatlist1(v1,n);/创建有向图 coutj; for(i=0;iM;i+) fi=0; cout深度遍历为:; DFS(v1,j,f);/深度遍历 coutendl; for(i=0;iM;i+) fi=0; cout广度遍历为:; BFS(v1,j,f);/广度遍历 break;case 2:cout-创建无向图-endl; creatlist2(v2,n);/创建无向图 coutk; for(i=0;iM;i+) fi=0; cout深度遍历为:; DFS(v2,k,f);/深度遍历 coutendl; for(i=0;iM;i+) fi=0; cout广度遍历为:; BFS(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省安平中学2025-2026学年高二(下)开学数学试卷(含答案)
- 水生物病害防治员安全宣贯强化考核试卷含答案
- 业务合同解除通知及后续处理联系函(7篇)
- 第二单元 进入新时代 单元测试(含答案)-2026-2027学年统编版道德与法治九年级上册
- 柠檬酸充填封装工核心技能强化考核试卷含答案
- 水生哺乳动物驯养员工作实操测试考核试卷含答案
- 海洋环境监测员安全文化竞赛考核试卷含答案
- 酶制剂发酵工工作标准化强化考核试卷含答案
- 过程控制系统点检员岗位责任考核试卷含答案
- 钻孔机司机岗前安全强化考核试卷含答案
- 2026年英语教师雏雁考试试题及答案
- 2026北京市交通发展年度报告
- (2026版)围手术期出凝血管理麻醉专家意见
- 第二单元《语文园地》教案(2课时)-2026-2027学年统编版(新教材)小学语文五年级上册
- 肛裂的护理要点
- 实习生录用通知书标准范本
- 上海交通大学春季统一招聘笔试题
- 2026年度质量战略规划
- 浙江省强基联盟2025-2026学年高二上学期12月联考日语试题含答案
- 锌浸出工艺流程图
- 非遗漆扇动态介绍非物质文化遗产课件
评论
0/150
提交评论