图的邻接矩阵(adjacency matrix).doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图的邻接矩阵(adjacency matrix)

图的邻接矩阵(adjacency matrix) 图的邻接矩阵 #包括 iostream。” #包括程序。” #定义无限0 #定义max_vertex_num 10 / /最大顶点数 #定义max_edge_num 40 / /最大边数 typedef enum { DG,DN,UDG,UDN } Graphkind; 个字符的顶点类型;/ /顶点数据类型 typedef struct arccell { int的;/ /无权图,1或0表示相邻否;带权图则是权值。 // int *信息; } ArcCell,邻接钜阵[ max_vertex_num ] [ max_vertex_num ]; typedef struct { 顶点类型vexs [ max_vertex_num ];//顶点向量 邻接钜阵弧;/ /邻接矩阵 国际vexnum,arcnum;/ /图的当前顶点数和弧数。 Graphkind; } MGraph; int LocateVex(MGraph G的顶点类型V1) { int i; 为(i = 0;i g.vexnum;i++) 如果(g.vexs [我] = = V1) 还我; 返回1; } int CreatUDN(MGraph G) / /采用数组表示法,构造无向网G { 顶点类型V1、V2; int W J; cout “输入图的顶点数” endl; g.vexnum CIN; cout “输入图的弧数” endl; g.arcnum CIN; 为(int i = 0;i g.vexnum;i++) { cout “输入顶点向量” endl; CIN g.vexs [我]; } 为(i = 0;i g.vexnum;i++) 为(J = 0;J g.vexnum;j++) { g.arcs [我] [ J ]的无限; } 为(int k = 0;K<g.arcnum;+ + K)/构造邻接矩阵 { cout “输入边依附的两个顶点” endl; V2 V1 CIN; cout “输入此边的权值” endl; CIN W; 我= locatevex(G,V1); J = locatevex(G,V2); g.arcs [我] [ J ]的W; g.arcs [ J ] [我],[我]的g.arcs [J]; } 返回1; } 无效dispmgraph(MGraph G) { cout “图的邻接矩阵图是:“ endl; 为(int i = 0;i g.vexnum;i++) { 为(j = 0;J g.vexnum;j++) cout “ g.arcs [我]的[ J ]; cout endl; } } 无效main() { MGraph G; CreatUDN(G); dispmgraph(G); } 邻接表, #包括 iostream。” #包括程序。” #定义max_vertex_num 20 / /最大顶点数 #定义max_edge_num 40 / /最大边数 在参观了[ max_vertex_num ]; typedef int VertexType;/ /顶点数据类型 typedef struct阿克诺德 { 国际adjvex; 体重; 结构nextarc阿克诺德*; } ArcNode; 定义节点 { 顶点类型数据; firstarc阿克诺德*; } VNode,adjlist [ max_vertex_num ]; typedef struct { adjlist顶点; 国际vexnum,arcnum; int类型; } ALGraph; 无效的CreateDG(algraph G) { int i,j,k; 阿克诺德* P; cout “创建一个图:“ endl; cout “顶点数:”;CIN g.vexnum cout endl; cout “边数:”;CIN g.arcnum cout endl; 为(i = 0;i g.vexnum;i++) { g.vertices [我]数据=我; g.vertices [我]。firstarc = null; } 为(k = 0;K<g.arcnum;K + +) { cout “请输入第” K + 1 “条边:”; cin j; p = (arcnode *) malloc (sizeof (arcnode)); p - adjvex = j; p - nextarc = g.vertices [].firstarc; g.vertices [].firstarc = p; } } void data (algraph g) { int i, j; arcnode

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档