- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
路径长度: 路径长度: 回路(环):第一个顶点和最后一个顶点相同的路径。 简单路径:序列中顶点不重复出现的路径。 简单回路(简单环):除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路。 Status CreateGraph( MGraph G ) { // 算法7.1 // 采用数组(邻接矩阵)表示法,构造图G。 scanf(G.kind); // 自定义输入函数,读入一个随机值 switch (G.kind) { case DG: return CreateDG(G); // 构造有向图G case DN: return CreateDN(G); // 构造有向网G case UDG: return CreateUDG(G); // 构造无向图G case UDN: return CreateUDN(G); // 构造无向网G,算法7.2 default : return ERROR; } } // CreateGraph Status CreateUDN(MGraph G) {// 算法7.2 // 采用数组(邻接矩阵)表示法,构造无向网G。 int i,j,k,w; VertexType v1,v2; printf(G.vexnum : ); scanf(%d,G.vexnum);//输入顶点个数 printf(“G.arcnum :”); scanf(“%d”,G.arcnum);//输入弧的个数 for (i=0; iG.vexnum; ++i ) { printf(G.vertex[%d] : ,i); scanf(%c,G.vertex[i]); } // 构造顶点向量 for (i=0; iG.vexnum; ++i ) // 初始化邻接矩阵 for (j=0; jG.vexnum; ++j ) { G.arcs[i][j].adj = INFINITY; //{adj,info} G.arcs[i][j].info= NULL; } for (k=0; kG.arcnum; ++k ) { // 构造邻接矩阵 printf(v1 (char) : ); scanf(%c, v1);getchar(); printf(v2 (char) : ); scanf(%c, v2);getchar(); printf(w (int) : ); scanf(%d, w); getchar(); // 输入一条边依附的顶点及权值 i = LocateVex(G, v1); j = LocateVex(G, v2); // 确定v1和v2在G中位置 G.arcs[i][j].adj = w; // 弧v1,v2的权值 // if (IncInfo) scanf(G.arcs[i][j].info); // 输入弧含有相关信息 G.arcs[j][i].adj = G.arcs[i][j].adj; // 置v1,v2的对称弧v2,v1 } return OK; } // CreateUDN 首先计算以下与关键活动有关的量: B D A C 反之,对于下列有向图 不能求得它的拓扑有序序列。 因为图中存在一个回路 {B, C, D} 7.5 拓扑排序 如何进行拓扑排序? 一、从有向图中选取一个没有前驱的顶点,并输出之; 重复上述两步,直至图空,或者图不空但找不到无前驱的顶点为止。 二、从有向图中删去此顶点以及所有以它为尾的弧; 7.5 拓扑排序 a b c g h d f e a b h c d g f e 例如: 7.5 拓扑排序 在算法中需要用定量的描述替代定性的概念 没有前驱的顶点 ?? 入度为零的顶点 删除顶点及以它为尾的弧 ?? 弧头顶点的入度减1 a b c g h d f e a b h c 又如: 为避免每次都要搜索入度为零的顶点, 在算法中设置一个“栈”,以保存“入度为零”的顶点。 伪代码如下: 1. 栈S初始化;累加器count初始化; 2. 扫描顶点表,将没有前驱的顶点压栈; 3. 当栈S非空时循环 3.1 vj=退出栈顶元素;输出vj;累加器加1; 3.2 将顶点vj的各个邻接点的入度减1;
您可能关注的文档
最近下载
- 初中物理教学案例中的信息技术与学科整合论文.docx
- 立柱桩施工方案.docx VIP
- 碧桂园北湖项目营销策略提报 -房地产-2024-.pptx VIP
- [云南]2024年国家税务总局云南省税务局所属事业单位招聘30人 笔试历年典型考题及考点剖析附答案详解.doc
- 09J940 皮带运输机通廊建筑构造.pdf VIP
- BSI MDR Requirement 欧盟MDR要求培训课件.pdf VIP
- 13《精卫填海》课件(共32张PPT).pptx VIP
- 医疗机构药事管理规定(全文).docx VIP
- 职业卫生与职业医学简答题库(含答案).pdf VIP
- YS_T 582-2013电池级碳酸锂.pdf
原创力文档


文档评论(0)