已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编写一个程序algo8-1,实现不带权图和带权图的邻接矩阵和邻接表的相互转换算法、输出邻接矩阵与邻接表的运算,并在此基础上设计一个主程序完成如下功能:(1) 建立如图所示的有向图G的邻接矩阵,并输出之;(2) 由有向图G的邻接矩阵产生邻接表,并输出之;(3) 再由(2)的邻接表产生对应的邻接矩阵,并输出之。文件graph.h定义了图的邻接矩阵表示类型和邻接表表示类型,该头文件在代码如下:typedef int InfoType;#define MAXV 100 /最大顶点个数#define INF 32767 /INF表示/以下定义邻接矩阵类型typedef structint no; /顶点编号InfoType info; /顶点其它信息 VertexType; /顶点类型typedef struct /图的定义int edgesMAXVMAXV; /邻接矩阵int n,e; /顶点数,边数VertexType vexsMAXV; /存放顶点信息 MGraph; /图的邻接矩阵类型/以下定义邻接表类型typedef struct ANode /边的节点结构类型int adjvex; /该边的终点位置struct ANode * nextarc; /指向下一条边的指针InfoType info; /该边的相关信息,这里用于存放权值 ArcNode;typedef int Vertex;typedef struct Vnode /邻接表头节点的类型Vertex data; /顶点信息ArcNode * firstarc; /指向第一条边 VNode;typedef VNode AdjListMAXV; /AdjList是邻接表类型typedef structAdjList adjlist; /邻接表int n,e; /图中顶点数n和边数e ALGraph; /图的邻接表类型Algo8-1.cpp的代码如下:#include#include#includegraph.h/-/-不带权图的算法-/-void MatToList(MGraph g,ALGraph * &G) /将邻接矩阵g转换成邻接表Gint i,j;ArcNode * p;G=(ALGraph * )malloc(sizeof(ALGraph);for(i=0;iadjlisti.firstarc=NULL;for(i=0;i=0;j-)if(g.edgesij!=0) /邻接矩阵的当前元素不为0p=(ArcNode * )malloc(sizeof(ArcNode); /创建一个节点 * pp-adjvex=j;p-nextarc=G-adjlisti.firstarc; /将* p链到链表后G-adjlisti.firstarc=p;G-n=g.n;G-e=g.e;void ListToMat(ALGraph * G,MGraph &g) /将邻接表G转换成邻接矩阵gint i,j;ArcNode * p; for(i=0;in;i+) / g.edgesij赋初值0for(j=0;jn;j+)g.edgesij=0;for(i=0;in;i+)p=G-adjlisti.firstarc;while(p!=NULL)g.edgesip-adjvex=1;p=p-nextarc;g.n=G-n;g.e=G-e;void DispMat(MGraph g) /输出邻接矩阵gint i,j;for(i=0;ig.n;i+)for(j=0;jg.n;j+)printf(%3d,g.edgesij);printf(n);void DispAdj(ALGraph * G) /输出邻接表Gint i;ArcNode * p;for(i=0;in;i+) p=G-adjlisti.firstarc;printf(%3d:,i);while(p!=NULL)printf(%3d,p-adjvex);p=p-nextarc;printf(n);/-/-带权图的算法-/-void MatToList1(MGraph g,ALGraph * &G) /将邻接矩阵g转换成邻接表Gint i,j;ArcNode * p;G=(ALGraph *)malloc(sizeof(ALGraph);for(i=0;iadjlisti.firstarc=NULL;for(i=0;i=0;j-)if(g.edgesij!=0&g.edgesij!=INF) /存在一条边p=(ArcNode * )malloc(sizeof(ArcNode); /创建一个节点 * pp-adjvex=j;p-info=g.edgesij;p-nextarc=G-adjlisti.firstarc; /将* p链到链表后G-adjlisti.firstarc=p;G-n=g.n;G-e=g.e;void ListToMat1(ALGraph * G,MGraph &g) /将邻接表G转换成邻接矩阵gint i,j;ArcNode * p;for(i=0;in;i+) / g.edgesij赋初值0for(j=0;jn;j+)if(i=j)g.edgesij=0;elseg.edgesij=INF;for(i=0;in;i+)p=G-adjlisti.firstarc;while(p!=NULL)g.edgesip-adjvex=p-info;p=p-nextarc;g.n=G-n;g.e=G-e;void DispMat1(MGraph g) /输出邻接矩阵gint i,j;for(i=0;i,g.n;i+)for(i=0;ig.n;i+)for(j=0;jg.n;j+)if(g.edgesij=INF)printf(:%3d,);elseprintf(%3d,g.edgesij);printf(n);void DispAdj1(ALGraph * G) /输出邻接表Gint i;ArcNode * p;for(i=0;in;i+)p=G-adjlisti.firstarc;printf(%3d:,i);while(p!=NULL)printf(%3d(%d),p-adjvex,p-info);p=p-nextarc;printf(n);主程序exp8-1.cpp代码如下:#include#include#includegraph.hextern void MatToList1(MGraph,ALGraph * &); /以下外部函数在algo8-1.cpp中extern void ListToMat1(ALGraph * ,MGraph &);extern void DispMat1(MGraph);extern void DispAdj1(ALGraph * );void mian()int i,j;MGraph g,g1;ALGraph * G;int AMAXV6=0,5,INF,7,INF,INF,INF,0,4,INF,INF,INF,8,INF,0,INF,INF,9,INF,INF,5,0,INF,6,INF,INF,INF,5,0,INF,3,INF,INF,INF,1,0;g.n=6;g.e=10; /建立图8-1中有带向标图G的邻接矩阵for(i=0;ig.n;i+)for(j=0;jg.n;j+)g.edgesij=Aij;printf(有向图G的邻接矩阵:n);DispMat1(g);G=(ALGraph
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年基于病症的中医康复实训流程设计(中风后)
- 2026年注塑机工艺参数设定指南
- 记账实操-肉类批发集贸市场账务处理
- 四川开放大学2026年事业编制岗位公开考核招聘高层次人才备考题库(22人)附答案详解(达标题)
- 2026国家隧道应急救援中铁二局昆明队招聘救援人员4名备考题库及参考答案详解1套
- 2026重庆水务环境集团所属管网公司招聘12人备考题库附答案详解(典型题)
- 2026广西玉林市北流市石窝镇华东卫生院招聘编外人员5人备考题库及参考答案详解一套
- 2026云南昆明嵩明县中医医院看守所卫生所合同制专业技术人员招聘3人备考题库及1套完整答案详解
- 2026内蒙古赤峰市市本级事业单位“绿色通道”引进人才147人备考题库及答案详解(基础+提升)
- 大学毕业论文致谢词 范文8篇
- 长城的历史资料概括
- 2020新版药品GCP考试题库及答案
- 证据法学-典型案例分析
- 2022年一级注册建筑师考试《建筑材料与构造》真题及答案解析
- 滴水实验 说课课件
- 小型液压机液压系统设计
- 玉米的综合利用玉米皮的综合利用
- GB/T 4450-1995船用盲板钢法兰
- 汽轮机TSI系统详解
- 建档立卡-退役军人信息登记表(基础电子档案)
- (部编版)统编四年级语文下册第六单元《习作:我学会了-》教学课件
评论
0/150
提交评论