- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 合理使用手机主题班会省公开课一等奖全国示范课微课金奖PPT课件.pptx
- 试卷3试卷答案4《运营管理(新形态版) 》_刘蕾曹俊玲.docx VIP
- 数学新课标2022版学习重要知识点考点总结 数学新课标最新版重点知识复习总结.docx
- 2023年中考语文二轮复习:文言文阅读 司马迁《史记》专项练习题汇编(Word版,含答案).docx
- 2024年中级银行从业资格考试《银行管理》真题汇编试卷(文末含答案解精品.pdf VIP
- 乡镇宣传工作总结PPT.pptx VIP
- 2024年疾控大学习突发公共卫生事件监测答案.docx VIP
- 车间冬季安全培训.pdf VIP
- 长阳路排水管道修复监理细则.pdf
- 你是这样的人降B正谱子五线谱乐谱曲谱歌谱高清.pdf
文档评论(0)