自考数据结构02142-第五章概要.pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
生成树——含有该连通图的全部顶点的一个极 小连通子图 若连通图G的顶点个数为n,则G的生成树的边数为n-1。 G的子图G’边数大于n-1,则G’中一定有环。 G的子图G’边数小于n-1,则G’中一定不连通。 生成森林——在非连通图中,每个连通分量都可得到一个极小连通子图,也就是生成树。这些生成树就组成了一个非连通图的生成森林。 图的基本运算 建立图GreateGraph(G,V,E) 取顶点信息Getvex(G,u) 取边信息Getarc(G,u,v) 查询第一个邻接点FirstVex(G,u) 查询下一个邻接点NextVex(G,u,v) 插入顶点InsertVex(G,v) 删除顶点DeleteVex(G,v) 插入边InsertArc(G,v,w) 删除边DeleteArc(G,v,w) 遍历图Travers(G,tag) 4、建立无向带权邻接矩阵: 将矩阵A的每个元素都初始化为最大值。 然后读入边和权值(i,j,wij),将A的相应元素设为wij。算法如下: 4. 邻接表的类型定义: 对于无向图,第i个链表的结点数为顶点Vi的度; 对于有向图,第i个链表的结点数只为顶点Vi的出度;若要求入度,必须遍历整个邻接表。在单链表中,其邻接点域的值为i的结点个数是顶点Vi的入度。 对于有向图,有时候就要建立一个逆邻接表。即对每个顶点Vi建立一个以Vi为弧头的邻接点的链表。这样,逆邻接表第i个单链表中的结点个数就是Vi的入度。 结点形式: 注意: 搜索到达某个顶点时(图中仍有顶点未被访问),如果这个顶点的所有邻接点都被访问过,那么搜索就要回到前一个被访问过的顶点,再从该顶点的下一未被访问的邻接点开始深度优先搜索。; 深度搜索的顶点的访问序列不是唯一的。 Bfs (Graph g, int v) { LkQue Q; //Q为链队列 int j; InitQueue(Q); printf(“%d”,v); //v为访问的起始结点 visited[v]=1; //访问过的标志 EnQueue(Q,v); while ( !EmptyQueue(Q)) //判队列是否为空 { v=Gethead(Q); OutQueue(Q); //出队列 for (j=0;jn;j++) //n为顶点数,变化j依次尝试v的可能邻接点 { m=g-arcs[v][j]; if (m !visited[j]) //判断是否邻接点,且未被访问 { printf(“%d”,j); visited[j]=1; //置被访问标志 EnQueue(Q,j); //邻接点入队列 } } } } 基本思想: 假设G=(V,E)是一个无向带权图,生成的最小生成树为MinT=(V,T),其中V为顶点的集合,T为边的集合。求T的步骤如下: 1.初始化U={u0},T={ };其中U为一个新设置的顶点的集合,初始U中只含有顶点u0,这里假设在构造最小生成树时,从顶点u0出发; 2.对所有u∈U,v∈V-U(其中u,v表示顶点)的边(u,v)中,找一条权最小的边(u’,v’),将这条边加入到集合T中,将顶点v’加入到集合U中; 3.如果U=V,则算法结束;否则重复2、3步。 基本思想: 1.设G=(V,E),令最小生成树初始状态为只有n个顶点而无边的非联通图T=(V,{ }),每个顶点自成一个连通分量; 2.在E中选取权值最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中,否则,舍去此边,选取下一条权值最小的边; 3.以此类推,重复2,直至T中所有顶点都在同一连通分量上为止。 V0 V1 V2 V3 V4 V5 V6 V7 V7 V6 V5 V

文档评论(0)

1520520 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档