c++实现图的邻接表存储.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c实现图的邻接表存储

c++实现图的邻接表存储 #includestdio.h #includestdlib.h #define MAX_VERTEX_NUM 20 #define OK 1 #define ERROR 0 typedef int InfoType; /* 该弧相关信息的指针类型 */ typedef char VertexType; /* 顶点的类型 */ typedef struct ArcNode /* 弧结点的结构 */ { int adjvex; /* 该弧所指向的顶点的位置 */ struct ArcNode *nextarc; /* 指向下一条弧的指针 */ InfoType *info; /* 该弧相关信息的指针(觉得应该是记录某些备注信息)如权值 */ }ArcNode; typedef struct VNode /* 顶点结点的结构 */ { VertexType data; /* 顶点信息 */ ArcNode *firstarc; /* 指向第一条依附该顶点的弧的指针 */ }VNode, AdjList[MAX_VERTEX_NUM]; typedef struct /* 图的邻接表结构定义 */ { AdjList vertices; /* 存放顶点的数组 */ int vexnum, arcnum; /* 图的当前顶点数和弧数 */ int kind; /* 图的种类标志 */ }ALGraph; int CreateUDG(ALGraph G) /* 邻接表建立无向图 */ { int i,s,d; ArcNode *p, *q; scanf(%d%d,G.vexnum,G.arcnum); /* 输入结点数目和边数 */ getchar(); for(i=1; i=G.vexnum; i++) /* 输入顶点 */ { scanf(%c,G.vertices[i].data); /* 输入顶点 */ getchar(); G.vertices[i].firstarc = NULL; /* 首先初始化为NULL */ } for(i=1; i=G.arcnum; i++) { scanf(%d%d,s,d); /* 输入一条边依附的起点序号和终点序号 */ getchar(); p = (struct ArcNode *)malloc(sizeof(struct ArcNode)); q = (struct ArcNode *)malloc(sizeof(struct ArcNode)); p-adjvex = d; /* 保存该弧所指向的顶点位置 */ q-adjvex = s; /* 保存该弧所指向的顶点位置 */ p-nextarc = G.vertices[s].firstarc; G.vertices[s].firstarc = p; q-nextarc = G.vertices[d].firstarc; G.vertices[d].firstarc = q; } return OK; } int CreateUDN(ALGraph G) /* 邻接表建立无向网 */ { int i,s,d,w; ArcNode *p, *q; scanf(%d%d,G.vexnum,G.arcnum); /* 输入结点数目和边数 */ getchar(); for(i=1; i=G.vexnum; i++) /* 输入顶点 */ { scanf(%c,G.vertices[i].data); /* 输入顶点 */ getchar(); G.vertices[i].firstarc = NULL; /* 首先初始化为NULL */ } for(i=1; i=G.arcnum; i++) { scanf(%d%d%d,s,d,w); /* 输入一条边依附的起点序号和终点序号 */ getchar(); p

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档