第04章_图答辩.ppt

  1. 1、本文档共136页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 图;4.1 图的基本概念;图的应用举例 例1 交通图(公路、铁路) 顶点:地点 边:连接地点的公路 交通图中的有单行道双行道,分别用有向边、无向边表示;; 通常,也将图G的顶点集和边集分别记为V(G)和E(G)。E(G)可以是空集,若E(G)为空,则图G只有顶点而没有边。;图4-1;例:图4-1;在以后的讨论中,我们约定: (1)一条边中涉及的两个顶点必须不相同,即:若(vi,vj)或vi,vj是E(G)中的一条边,则要求vi≠vj; (2)一对顶点间不能有相同方向的两条有向边; (3)一对顶点间不能有两条无向边,即只讨论简单的图。 ; 若用n表示图中顶点的数目,用e表示图中边的数目,按照上述规定,容易得到下述结论:对于一个具有n个顶点的无向图,其边数e小于等于n(n-1)/2,边数恰好等于n(n-1)/2的无向图称为无向完全图;对于一个具有n个顶点的有向图,其边数e小于等于n(n-1),边数恰好等于n(n-1)的有向图称为有向完全图。也就是说完全图具有最多的边数,任意一对顶点间均有边相连。 ;例:图4-2; 若vi,vj是一条有向边,则称vi邻接到vj,vj邻接于vi,并称有向边vi,vj关联于vi与vj,或称有向边vi,vj与顶点vi和vj相关联。 ;无论有向图还是无向图,图中的每条边均关联于两个顶点,因此,顶点数n、边数e和度数之间有如下关系:;v1;五、路径; 如果一条路径上除了起点v和终点u相同外,其余顶点均不相同,则称此路径为一条简单路径。起点和终点相同(v=u)的简单路径称为简单回路或简单环。 ;例:非连通图及其连通分量示例; 有向图的极大强连通子图称为G的强连通分量。根据强连通图的定义,可知强连通图的唯一强连通分量是其自身,而非强连通的有向图有多个强连分量。例如,图8.2(b)所示的有向图G4是一个具有4个顶点的强连通图,图8.5(a)所示的有向图G6不是强连通图(v2、v3、v4没有到达v1的路径),它的两个强连通分量H3与H4如图8.5(b)所示。 ;七、网络;作业:;8.2 给定有向图8.30,试给出 (1)顶点D的入度与出度; (2)该图的出边表与入边表; (3)该图的强连通分量。 ;4.2 图的基本运算;图的基本操作如下: (1)creatgraph(g) 创建一个图的存储结构。 (2)insertvertex(g,v) 在图g中增加一个顶点v。 (3)deletevertex(g,v) 在图g中删除顶点v及所有和顶点v相关联的边或弧。 (4)insertedge(g,v,u) 在图g中增加一条从顶点v到顶点u的边或弧。 (5)deleteedge(g,v,u) 在图g中删除一条从顶点v到顶点u的边或弧。;(6)trave(g) 遍历图g。 (7)locatevertex(g,v) 求顶点v在图g中的位序。 (8)fiirstvertex(g,v) 求图g中顶点v的第一个邻接点。 (9)degree(g,v) 求图g中顶点v的度数。 (10)nextvertex(g,v,w) 求图g中与顶点v相邻接的顶点w的下一个邻接点。即求图g中顶点v的某个邻接点,它的存储顺序排在邻接点w的存储位置之后。 } ADT Graph;4.3图的基本存储结构 ;4.3.1邻接矩阵及其实现 ;v0; 用邻接矩阵表示图,很容易判定任意两个顶点之间是否有边相连,并求得各个顶点的度数。对于无向图,顶点vi的度数是邻接矩阵中第i行或第i列值为1的元素个数,即: ;二、网络的邻接矩阵;V0;邻接矩阵存储结构;/*********************************************************/ /* 图的邻接矩阵创建算法 */ /* 文件名:c_ljjz.c 函数名:creatmgraph1() */ /*********************************************************/ #include stdio.h #include mgraph.h void creatmgraph1(mgraph *g) {int i,j,k,w; /*建立有向网络的邻接矩阵存储结构*/ printf(please input n and e:\n); scanf(%d%d,g-n,g-e); /*输入图的顶点数与边数*/ getchar(); /*

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档