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

数据结构实验六

数据结构实验六_第1页
1/6
数据结构实验六_第2页
2/6
数据结构实验六_第3页
3/6
编写一个程序 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 * )malloc(sizeof(ArcNode)); //创建一个节点 * pp->adjvex=j;p->nextarc=G->adjlist[i]、firstarc; //将* p 链到链表后G-...

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

碎片内容

数据结构实验六

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