- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
//图的基本操作算法
//1.
void CreatGraph (AdjList g) //建立有n个顶点和m 条边的无向图的邻接表存储结构
{
int n,m;
scanf(%d%d,n,m);
for(i =1,i=n;i++) //输入顶点信息,建立顶点向量
{
scanf(g[i].vertex);
g[i].firstarc=null;
}
for(k=1;k=m;k++) //输入边信息
{
scanf(v1,v2); //输入两个顶点
i=GraphLocateVertex (g,v1);
j=GraphLocateVertex (g,v2); //顶点定位
p=(ArcNode *)malloc(sizeof(ArcNode)); //申请边结点
p-adjvex=j;
p-next=g[i].firstarc;
g[i].firstarc=p; //将边结点链入
p=(ArcNode *)malloc(sizeof(ArcNode)); //无向图双向连接
p-adjvex=i;
p-next=g[j].firstarc;
g[j].firstarc=p;
}
}//算法CreatGraph结束
//2.
void CreatAdjList(AdjList g) //建立有向图的邻接表存储结构
{
int n;
scanf(%d,n);
for (i=1;i=n;j++)
{
scanf(g[i].vertex);
g[i].firstarc=null;
}//输入顶点信息
scanf(v1, v2);
while(v1 v2) //题目要求两顶点之一为0表示结束
{
i=GraphLocateVertex(g2,v1);
p=(ArcNode*)malloc(sizeof(ArcNode)); //有向图 只需要单边
p-adjvex=j;
p-next=g[i].firstarc;
g[i].firstarc=p;
scanf(v1,v2);
}
}
//5.
void InvertAdjList(AdjList gin,gout) //将有向图的出度邻接表改为按入度建立的逆邻接表
{
for(i=1;i=n;i++) //设有向图有n个顶点,建逆邻接表的顶点向量。
{
gin[i].vertex=gout[i].vertex;
gin.firstarc=null;
}//逆邻接表 顶点初始化
for(i=1;i=n;i++) //邻接表转为逆邻接表
{
p=gout[i].firstarc; //取指向邻接表的指针 邻接表 头结点i的第一条边
while(p!=null)
{
j=p-adjvex; // 邻接表i,j边结点中的j顶点信息
s=(ArcNode *)malloc(sizeof(ArcNode)); //申请逆邻接表的边结点空间
s-adjvex=i; //对逆邻接表的j,i边结点 顶点信息赋值
s-next=gin[j].firstarc; //对逆邻接表的j,i边结点 下一边信息赋值
gin[j].firstarc=s; // j,i边结点链入逆邻接表
p=p-next; // 邻接表中找下一个邻接点。
}//while
}//for
}
//6.
void AdjListToAdjMatrix(AdjList gl, AdjMatrix gm) //将图的邻接表表示转换为邻接矩阵表示
{
for(i=1;i=n;i++) //设图有n个顶点,邻接矩阵初始化。
for(j=1;j=n;j++)
gm[i][j]=0;
for(i=1;i=n;i++)
{
p=gl[i].firstarc; //取第一个邻接点。
while(p!=null)
{
gm[i][p-adjvex]=1;
p=p-next;
} //下一个邻接点
}//for
}//算法结束
//7.
void AdjMatrixToAdjList( AdjMatrix gm, AdjList gl ) //图的邻接矩阵表示法转换为邻接表表示法
{
for(i=1;i=n;i++) //邻接表表头向量初始化。
{
scanf(gl[i].vertex);
gl[i].firstarc=null;
}
for(i=1;i=n;i++)
for(j=1;j=n;j+
您可能关注的文档
- 一家装宽带多个家无线远程分享解决方案技术总结.doc
- 一件事的启示作文技术总结.doc
- 一建机电实务知识点背诵技术总结.doc
- 一建矿业历年选择技术总结.doc
- 一建历年实务题及技术总结.doc
- 一建每日一练(4.18)技术总结.docx
- 塔吊安拆监理实施细则技术总结.doc
- 一建专业对照表技术总结.doc
- 塔吊安全施工专项方案技术总结.doc
- 一阶动态电路的设计与仿真技术总结.doc
- 2025年中山市沙溪镇人民政府所属事业单位招聘11人笔试备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库含答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库及完整答案详解1套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库参考答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及答案详解一套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及完整答案详解1套.docx
文档评论(0)