电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构实验六VIP专享VIP免费

数据结构实验六_第1页
数据结构实验六_第2页
数据结构实验六_第3页
编写一个程序algo8-1,实现不带权图和带权图的邻接矩阵和邻接表的相互转换算法、输出邻接矩阵与邻接表的运算,并在此基础上设计一个主程序完成如下功能: (1) 建立如图所示的有向图G 的邻接矩阵,并输出之; (2) 由有向图G 的邻接矩阵产生邻接表,并输出之; (3) 再由(2)的邻接表产生对应的邻接矩阵,并输出之。 文件graph.h 定义了图的邻接矩阵表示类型和邻接表表示类型,该头文件在代码如下: typedef int InfoType; #define MAXV 100 //最大顶点个数 #define INF 32767 //INF 表示∞ //以下定义邻接矩阵类型 typedef struct { int no; //顶点编号 InfoType info; //顶点其它信息 } VertexType; //顶点类型 typedef struct //图的定义 { int edges[MAXV][MAXV]; //邻接矩阵 int n,e; //顶点数,边数 VertexType vexs[MAXV]; //存放顶点信息 } 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 AdjList[MAXV]; //AdjList 是邻接表类型 typedef struct { AdjList adjlist; //邻接表 int n,e; //图中顶点数 n 和边数 e } ALGraph; //图的邻接表类型 Algo8-1.cpp 的代码如下: #include #include #include"graph.h" //---------------------------------------------------------------------- //------------------------不带权图的算法------------------------- //---------------------------------------------------------------------- void MatToList(MGraph g,ALGraph * &G) //将邻接矩阵 g 转换成邻接表G { int i,j; ArcNode * p; G=(ALGraph * )malloc(sizeof(ALGraph)); for(i=0;iadjlist[i].firstarc=NULL; for(i=0;i=0;j--) if(g.edges[i][j]!=0) //邻接矩阵的当前元素不为 0 { p=(ArcNode * )mall...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部