- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 佳能5D4中文使用说明书.pptx VIP
- T_SXNA 002-2021_陕西省消毒供应中心达标验收标准.pdf
- 2025年武汉江岸区公开招聘社区干事24人笔试备考题库及答案解析.docx VIP
- 20250616-高盛-亚洲经济分析:中国的新增住房需求将保持低迷.docx VIP
- 濒危野生植物及其制品物种鉴定规范.pdf VIP
- 默纳克ME320L电梯专用变频器说明书.pdf
- 20S517- 排水管道出水口.pdf VIP
- 某集团有限公司绩效考核详细手册.docx VIP
- 东北林业大学《高等数学Ⅱ》2025-----2026学年期末试卷(A卷).docx
- 茶楼股东合作协议8篇.docx VIP
文档评论(0)