C++ 图结构算法.doc

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

#include iostream #include stdlib.h #includewindows.h #define MAXNUM 20 #define MAXEDGE 65535 using namespace std; typedef struct { char VertexInfo; //顶点信息 int VertexSN; //顶点序号 int isTravel; //遍历标志 }TVertex; typedef struct{ int VertexSum; //顶点总数 TVertex Vertex[MAXNUM]; //顶点数组 int EdgeSum; //边总数 int EdgeValue[MAXNUM][MAXNUM]; //边权值 }TGraph; TVertex Vertex[5]={ //默认顶点数组 {a,0,0}, {b,1,0}, {c,2,0}, {d,3,0}, {e,4,0} }; int GM[5][5]={ //默认权值数组 {MAXEDGE,3,7,MAXEDGE,8}, {3,MAXEDGE,4,9,MAXEDGE}, {7,4,MAXEDGE,MAXEDGE,MAXEDGE}, {MAXEDGE,9,MAXEDGE,MAXEDGE,2}, {8,MAXEDGE,MAXEDGE,2,MAXEDGE} }; //以顶点信息查找顶点序号 int FindVertexNum(TGraph *myGraph,char Info){ for (int i=0;iMAXNUM;i++) { if (Info==myGraph-Vertex[i].VertexInfo) { return myGraph-Vertex[i].VertexSN; } } return -1;//未找到对应顶点 } //初始化图 void InitGraph(TGraph *myGraph){ cout要创建的图有多少个顶点?; cinmyGraph-VertexSum; cout要创建的图有多少条边?; cinmyGraph-EdgeSum; for (int i=0;imyGraph-VertexSum;i++) { myGraph-Vertex[i].isTravel=0; //设置各顶点均未遍历 for (int j=0;jmyGraph-VertexSum;j++) { myGraph-EdgeValue[i][j]=MAXEDGE; //设置图没有边权(以最大值表示) } } } //创建图 void CreateGraph(TGraph * myGraph){ char startPoint,endPoint; int edgeValue=-1; cout输入各顶点的信息,以空格分隔.\n; for(int i=0;imyGraph-VertexSum;i++){ cinmyGraph-Vertex[i].VertexInfo; myGraph-Vertex[i].VertexSN=i; } cout顶点\t值\n; for(int i=0;imyGraph-VertexSum;i++) { couti+1\tmyGraph-Vertex[i].VertexInfoendl; } cout输入顶点间的权值,格式:\t a b 10\n; for (int i=0;imyGraph-EdgeSum;i++) { cinstartPointendPointedgeValue; int startPos=FindVertexNum(myGraph,startPoint); int endPos=FindVertexNum(myGraph,endPoint); if (startPos!=-1endPos!=-1) { myGraph-EdgeValue[startPos][endPos]=edgeValue; myGraph-EdgeValue[endPos][startPos]=edgeValue; } } } //显示图 void ShowGraph(TGraph *myGraph){ for (int i=0;imyGraph-VertexSum;i++) { for (int j=0;jmyGraph-VertexSum;j++) { if (myGraph-EdgeValue[i][j]==MAXEDGE) { cou

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档