数据结构 第7章图.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程的内容;哥尼斯堡七桥问题 德国古城—哥尼斯堡—普雷格尔河—七 桥问题:从任一桥头出发,依次走过每座 桥,每座桥只走一次,最后回到出发点。 ——一笔画问题;;;7.1 基本术语 7.2 存储结构 7.3 图的遍历 7.4 图的连通性 7.5 图的应用;7.1 图的基本术语;例:判断下列4种图形各属什么类型?;证明:;稀疏图: 稠密图: ;带权图:;生成树:;邻接点:;简单路径:;ADT Graph { 数据对象V: 数据关系 R: 基本操作P: }ADT Graph ;7.2 图的存储结构;① 建立一个顶点表和一个邻接矩阵。;例2 :有向图的邻接矩阵如何表示?; 容易实现图的操作,如:求某顶点的度、判断顶点之间是否有边(弧)、找顶点的邻接点等等。 n个顶点需要n*n个单元存储边(弧);空间效率为O(n2)。;注:用两个数组分别存储顶点表和邻接矩阵 #define INFINITY INT_MAX //最大值∞ #define MAX_VERTEX_NUM 20 //假设的最大顶点数 Typedef enum {DG, DN, AG, AN } GraphKind; //有向/无向图,有向/无向网;Status CreateUDN(Mgraph G){ //无向网的构造,用邻接矩阵表示 scanf(G.vexnum, G.arcnum, IncInfo); //输入总顶点数n、总弧数e和信息 for(i=0;iG.vexnum,;++i) scanf(G.vexs[i] );//输入n个顶点值,存入一维向量;2. 邻接表(链式)表示法;例1:无向图的邻接表如何表示?;例3:已知某网的邻接(出边)表,请画出该网络。;分析1: 对于n个顶点e条边的无向图,邻接表中除了n个头结点外,只有2e个表结点,空间效率为O(n+2e)。 若是稀疏图(en2),则比邻接矩阵表示法O(n2)省空间。;讨论:邻接表与邻接矩阵有什么异同之处?;图的邻接表在机内如何表示? (参见教材P163); 它是有向图的另一种链式结构。 思路:将邻接矩阵用链表存储,是邻接表、逆邻接表的结合。 1、开设弧结点,设5个域(每段弧是一个数据元素) 2、开设顶点结点,设3个域(每个顶点也是一个数据元素);v1;#define MAX_VERTEX_NUM 20;这是无向图的另一种存储结构,当对边操作时建议采用此种结构存储。 1、设立边结点, 6个域(每条边是一个数据元素) 2、设立顶点结点, 2个域(每个顶点也是一个数据元素);;一、深度优先搜索 二、广度优先搜索 ;一、深度优先搜索( DFS );深度优先搜索(遍历)步骤:;讨论1:计算机如何实现DFS?;for( j=1; j=n; j++) if ( A[v, j] ! visited[j] ) DFS1(A, n, j); return; } // DFS1;讨论3:在图的邻接表中如何进行DFS?;讨论4: 邻接表的DFS算法如何编程?;DFS 算法效率分析:;二、广度优先搜索( BFS );广度优先搜索(遍历)步骤:;讨论1:计算机如何实现BFS?;while(rear!=front){ //队不空时 front=(front+1)%n; v=q[front]; //访问过的顶点出队 p=List[v].firstarc; //P指向第1个邻接点 while(!p){ if(! Visited[adjvex(p)] )//未到表尾,且邻接域未访问过, {Visit(adjvex(p)); Visited[adjvex(p)]=1;//则先输出再改标记, rear=(rear+1)%n; q[rear]= adjvex(p)} //最后再入队 p=nextarc(p); } //指向单链表中下一个邻接点 } return } // BFS1;BFS 算法效率分析:;7.4 图的连通性问题;1.求图的生成树(或生成森林);例1 :画出下图的生成树;其实由邻接矩阵或邻接表也能直接画出生成森林;11;D;2. 求最小生成树;欲在n个城市间建立通信网,则n个城市应铺n-1条线路;但因为每条线路都会有对应的经济成本,而n

文档评论(0)

浪漫唯美-文档菜鸟 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档