数据结构6图.ppt
《数据结构6图.ppt》由会员分享,可在线阅读,更多相关《数据结构6图.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 图的基本概念及基本术语 图的存储结构 图的遍历 图的应用图属于非线性数据结构的一种。图属于非线性数据结构的一种。图属于非线性数据结构的一种。图属于非线性数据结构的一种。树结构中数据元素之间的关系:树结构中数据元素之间的关系:树结构中数据元素之间的关系:树结构中数据元素之间的关系:一对多一对多一对多一对多的关系。的关系。的关系。的关系。图结构中数据元素之间的关系:图结构中数据元素之间的关系:图结构中数据元素之间的关系:图结构中数据元素之间的关系:多对多多对多多对多多对多的关系。的关系。的关系。的关系。12/20/20221第第6章章 图图6.16.1、图的基本概念、图的基本概念 图是由结点集合
2、图是由结点集合图是由结点集合图是由结点集合(vertex)(vertex)及结点间的关系及结点间的关系及结点间的关系及结点间的关系集合组成的一种数据结构集合组成的一种数据结构集合组成的一种数据结构集合组成的一种数据结构:GraphGraph(V V,E E)其中其中其中其中 V V=x x|x x 某个数据对象某个数据对象某个数据对象某个数据对象 是结点的有穷是结点的有穷是结点的有穷是结点的有穷非空集合;非空集合;非空集合;非空集合;E E=(=(x x,y y)|)|x x,y y V V 是结点之间关系的有是结点之间关系的有是结点之间关系的有是结点之间关系的有穷集合,也叫做边穷集合,也叫做
3、边穷集合,也叫做边穷集合,也叫做边(edge)(edge)集合。集合。集合。集合。1.1.1.1.图:图:图:图:12/20/20222第第6章章 图图n n有向图有向图有向图有向图 GraphGraph(V V,E E)V V:是结点的有穷非空集合;是结点的有穷非空集合;是结点的有穷非空集合;是结点的有穷非空集合;E E:有向有向边边边边(弧弧)集合。集合。集合。集合。弧是结点的有序对弧是结点的有序对.例例:表示表示ViVjn n无向图无向图无向图无向图 GraphGraph(V V,E E)V V:是结点的有穷非空集合;是结点的有穷非空集合;是结点的有穷非空集合;是结点的有穷非空集合;E
4、E:是结点的是结点的是结点的是结点的无向无向边边边边(无序对无序对无序对无序对)的集合的集合的集合的集合例例例例:(Vi,VjVi,Vj)ViVi与与VjVj相邻相邻;(Vi,VjVi,Vj)=()=(Vj,ViVj,Vi)VjVj:弧头弧头Vi:Vi:弧尾弧尾ViVj12/20/20223第第6章章 图图 ADT GraphADT Graph 数据对象数据对象V:V:一个集合,集合中所有元素具有相同的特性。一个集合,集合中所有元素具有相同的特性。数据关系数据关系R R:R=VRR=VR VR=x VR=|Py|P(x x,y y)(x x,yVyV)基本操作:基本操作:(1 1)Create
5、GraphCreateGraph(G G):):创建图创建图G G。(2 2)DestoryGraphDestoryGraph(G G):):销毁图销毁图G G。(3 3)LocateVertexLocateVertex(G G,v v):确确定定顶顶点点v v在在图图G G中中的的位位置置。若图若图G G中没有顶点中没有顶点v v,则函数则函数值为值为“空空”。(4 4)GetVertexGetVertex(G G,i i):取取出出图图G G中中的的第第i i个个顶顶点点的的值值。若若i i大于图大于图G G中顶点数,则函数值为中顶点数,则函数值为“空空”。12/20/20224第第6章章
6、 图图 (5 5)FirstAdjVertexFirstAdjVertex(G G,v v):求求图图G G中中顶顶点点v v的的第第一一个个邻邻接接点点。若若v v无无邻邻接接点点或或图图G G中中无无顶顶点点v v,则则函函数数值值为为“空空”。(6 6)NextAdjVertexNextAdjVertex(G G,v v,w w):已已知知w w是是图图G G中中顶顶点点v v的的某某个个邻邻接接点点,求求顶顶点点v v的的下下一一个个邻邻接接点点(紧紧跟跟在在w w后后面面)。若若w w是是v v的最后一个邻接点,的最后一个邻接点,则函数值为则函数值为“空空”。(7 7)InsertV
7、ertexInsertVertex(G G,u u):):在图在图G G中增加一个顶点中增加一个顶点u u。(8 8)DeleteVertexDeleteVertex(G G,v v):删除图):删除图G G的顶点的顶点v v及与顶点及与顶点v v相关联的弧。相关联的弧。(9 9)InsertArcInsertArc(G G,v v,w w):在图):在图G G中增加一条从顶点中增加一条从顶点v v到顶点到顶点w w的弧。的弧。(1010)DeleteArcDeleteArc(G G,v v,w w):):删除图删除图G G中从顶点中从顶点v v到顶到顶点点w w的弧。的弧。(1111)Tra
8、verseGraphTraverseGraph(G G):):按照某种次序,按照某种次序,对图对图G G的的每个结点访问一次且仅访问一次。每个结点访问一次且仅访问一次。12/20/20225第第6章章 图图完全图完全图完全图完全图:对有对有n n个结点的图,个结点的图,无向图无向图:任意两结点都有一条边,即边数为任意两结点都有一条边,即边数为:n(n-1)/2n(n-1)/2,则称其为无向完全图;则称其为无向完全图;邻接结点邻接结点邻接结点邻接结点:无向图无向图:若(若(v vi i,v,vj j)E E,则称结点则称结点v vi i和和v vj j互为邻接点;互为邻接点;或称或称v vi i
9、和和v vj j相邻接;或称边(相邻接;或称边(v vi i,v,vj j)关联于结点关联于结点v vi i和和v vj j;或;或称称边(边(v vi i,v,vj j)与结点与结点v vi i和和v vj j相关联。相关联。有向图:有向图:若若 E,E,则称结点则称结点v vj j 是是v vi i 的的邻接点。邻接点。2.2.基本概念基本概念12/20/20226第第6章章 图图结点的度:结点的度:结点的度:结点的度:一个结点一个结点一个结点一个结点v v的度是与它相关联的边的条数的度是与它相关联的边的条数的度是与它相关联的边的条数的度是与它相关联的边的条数 记作记作记作记作TD(TD(
10、v v)。无向图:无向图:即为该结点相连的边的个数。即为该结点相连的边的个数。有向图:有向图:依附在某结点的弧的数目。依附在某结点的弧的数目。结点的入度结点的入度:以该结点为弧头的弧的数目。以该结点为弧头的弧的数目。是以是以是以是以 v v 为终点的有向边的条数为终点的有向边的条数为终点的有向边的条数为终点的有向边的条数,记作记作记作记作 ID(ID(v v);结点的出度:结点的出度:以该结点为弧尾的弧的数目。以该结点为弧尾的弧的数目。是以是以是以是以 v v 为始点的有向边的条数为始点的有向边的条数为始点的有向边的条数为始点的有向边的条数,记作记作记作记作 OD(OD(v v)。有向图:有向
11、图:任意两结点都有两条方向相反的弧,任意两结点都有两条方向相反的弧,即弧数为即弧数为n(n-1)n(n-1),则称其为有向完全图。则称其为有向完全图。12/20/20227第第6章章 图图TD(TD(v v)=ID(v)+OD(v)=ID(v)+OD(v)162543abcdefTD(1)=3 TD(2)=3TD(3)=3 TD(4)=2TD(5)=2 TD(6)=1ID(a)=1 OD(a)=2 TD(a)=3 ID(b)=1 OD(b)=2 TD(b)=3ID(c)=2 OD(c)=0 TD(c)=2 ID(d)=1 OD(d)=1 TD(d)=2ID(e)=0 OD(e)=1 TD(e)
12、=1 ID(f)=1 OD(f)=0 TD(f)=112/20/20228第第6章章 图图子图子图子图子图 :设有两个图设有两个图设有两个图设有两个图 GG(V V,E E)和和和和 GG(V V,E E)。若若若若 V V V V 且且且且 E E E E,则称则称则称则称 图图图图G G 是是是是 图图图图G G 的子图。的子图。的子图。的子图。0123(a)G1(a)G10123G1G1的子图的子图012G1G1的子图的子图0123G1G1的子图的子图01201201212(b)G2(b)G2G2G2的子图的子图G2G2的子图的子图G2G2的子图的子图12/20/20229第第6章章 图
13、图路径路径路径路径:在图在图 G G(V V,E E)中中,若存在一个结点序列若存在一个结点序列 v vp p1 1,v vp p2 2,v vpmpm,使得使得(v vi i,v vp p1 1)、(v vp p1 1,v vp p2 2)、.、(v vpmpm,v vj j)均属于均属于E E,则称结点则称结点v vi i到到v vj j存在一存在一 条路径。若一条路径上除了条路径。若一条路径上除了v vi i 和和v vj j 可可以相同外,其余结点均不相同,则称此路径为一条以相同外,其余结点均不相同,则称此路径为一条简单路径简单路径 。起点和终点相同的路径称为。起点和终点相同的路径称为
14、简单回路简单回路或简单环。或简单环。12/20/202210第第6章章 图图图的连通图的连通 在在无向图无向图G G中,若两个结点中,若两个结点v vi i和和v vj j之间有路径存之间有路径存在,则称在,则称v vi i 和和v vj j 是连通的。若是连通的。若G G中任意两个结点都是连通中任意两个结点都是连通的,则称的,则称G G为为连通图连通图。非连通图的极大连通子图叫做非连通图的极大连通子图叫做连通分连通分量量。强连通图与强连通分量强连通图与强连通分量强连通图与强连通分量强连通图与强连通分量 在在有向图有向图中中,若对于每一若对于每一 对结对结点点vi和和vj,都存在一条从都存在一
15、条从vi到到vj和从和从vj到到vi的路径的路径,则称此图是则称此图是强连通图。非强连通图的极大强连通强连通图。非强连通图的极大强连通 子图叫做子图叫做强连通分量。强连通分量。权权权权 某些图的边具有与它相关的数某些图的边具有与它相关的数,称之为权。称之为权。网络网络网络网络 这种带权图叫做。这种带权图叫做。12/20/202211第第6章章 图图1345213452V=1,2,3,4,5E=(1,2),(1,3),(1,4),(2,4),(4,5)V=1,2,3,4,5E=,无向图无向图有向图有向图连通图连通图非连通图非连通图1345267H1H1连通分量连通分量H2H2连通分量连通分量12
16、/20/202212第第6章章 图图132强连通图强连通图非强连通图非强连通图5134213425强连通分量强连通分量H1H1强连通分量强连通分量H2H212/20/202213第第6章章 图图12356874107966712315163045ABDCE6035804075网络网络12/20/202214第第6章章 图图 生成树生成树生成树生成树 一个连通图的生成树是它的极小连通子图,在一个连通图的生成树是它的极小连通子图,在一个连通图的生成树是它的极小连通子图,在一个连通图的生成树是它的极小连通子图,在n n个个个个结点的情形下,有结点的情形下,有结点的情形下,有结点的情形下,有n n-1
17、-1条边。条边。条边。条边。n n不予讨论的图不予讨论的图不予讨论的图不予讨论的图 包含结点到其自身的边;一条边包含结点到其自身的边;一条边包含结点到其自身的边;一条边包含结点到其自身的边;一条边在图中重复出现在图中重复出现在图中重复出现在图中重复出现12/20/202215第第6章章 图图6.2、图的存储结构、图的存储结构n n在图的邻接矩阵表示中,有一个在图的邻接矩阵表示中,有一个在图的邻接矩阵表示中,有一个在图的邻接矩阵表示中,有一个记录各个结点信息记录各个结点信息记录各个结点信息记录各个结点信息的的的的结点结点结点结点表;表;表;表;还有一个还有一个还有一个还有一个表示各个结点之间关系
18、表示各个结点之间关系表示各个结点之间关系表示各个结点之间关系的的的的邻接矩阵邻接矩阵邻接矩阵邻接矩阵。n n设图设图设图设图 A=(A=(V V,E E)是一个有是一个有是一个有是一个有 n n 个结点的图,则图的邻接矩阵个结点的图,则图的邻接矩阵个结点的图,则图的邻接矩阵个结点的图,则图的邻接矩阵是一个二维数组是一个二维数组是一个二维数组是一个二维数组 A A.Edge.Edge n n n n,定义:定义:定义:定义:邻接矩阵邻接矩阵(Adjacency Matrix)1.顺序存储顺序存储12/20/202216第第6章章 图图0123A.Edge=01324567A.Edge=V=0,1
19、,2,3V=0,1,2,3,4,5,6,712/20/202217第第6章章 图图网络的邻接矩阵网络的邻接矩阵12/20/202218第第6章章 图图w w无向图的邻接矩阵是对称的,无向图的邻接矩阵是对称的,无向图的邻接矩阵是对称的,无向图的邻接矩阵是对称的,w w有向图的邻接矩阵可能是不对称的。有向图的邻接矩阵可能是不对称的。有向图的邻接矩阵可能是不对称的。有向图的邻接矩阵可能是不对称的。w w在无向图中在无向图中在无向图中在无向图中,统计第统计第统计第统计第i i i i 行行行行(列列列列)1)1)1)1的个数可得结点的个数可得结点的个数可得结点的个数可得结点i i i i 的度。的度。
20、的度。的度。w w在有向图中在有向图中在有向图中在有向图中,统计第统计第统计第统计第i i i i 行行行行1 1 1 1的个数可得结点的个数可得结点的个数可得结点的个数可得结点i i i i的出度,统的出度,统的出度,统的出度,统计第计第计第计第j j j j 列列列列1 1 1 1的个数可得结点的个数可得结点的个数可得结点的个数可得结点j j j j 的入度。的入度。的入度。的入度。w w属于静态存储方法。不易扩充。属于静态存储方法。不易扩充。属于静态存储方法。不易扩充。属于静态存储方法。不易扩充。w w与结点个数有关,与边(弧)无关。会出现稀疏矩阵。与结点个数有关,与边(弧)无关。会出现
21、稀疏矩阵。与结点个数有关,与边(弧)无关。会出现稀疏矩阵。与结点个数有关,与边(弧)无关。会出现稀疏矩阵。邻接矩阵的特点:邻接矩阵的特点:12/20/202219第第6章章 图图2.链接存储链接存储邻接表邻接表(Adjacency List):n顺序存储结构和链接存储结构结合顺序存储结构和链接存储结构结合n顺序存储每个结点。顺序存储每个结点。n把与某个结点邻接的所有结点都链接在一把与某个结点邻接的所有结点都链接在一个单链表上。个单链表上。结点数据结点数据指针指针结点号结点号指针指针12/20/202220第第6章章 图图无向图的邻接表无向图的邻接表ABCD12/20/202221第第6章章 图
22、图把同一个结点发出的边链接在同一个边链表中,链表的把同一个结点发出的边链接在同一个边链表中,链表的把同一个结点发出的边链接在同一个边链表中,链表的把同一个结点发出的边链接在同一个边链表中,链表的每一个结点代表一条边,叫做每一个结点代表一条边,叫做每一个结点代表一条边,叫做每一个结点代表一条边,叫做边结点边结点边结点边结点,结点中保存有与,结点中保存有与,结点中保存有与,结点中保存有与该边相关联的另一结点的结点下标该边相关联的另一结点的结点下标该边相关联的另一结点的结点下标该边相关联的另一结点的结点下标 destdest 和指向同一链表和指向同一链表和指向同一链表和指向同一链表中下一个边结点的指
23、针中下一个边结点的指针中下一个边结点的指针中下一个边结点的指针 linklink。有向图的邻接表有向图的邻接表ABCDE12/20/202222第第6章章 图图带权图的边结点中保存该边上的权值带权图的边结点中保存该边上的权值带权图的边结点中保存该边上的权值带权图的边结点中保存该边上的权值 costcost。结点结点结点结点 i i 的边链表的表头指针的边链表的表头指针的边链表的表头指针的边链表的表头指针 adjadj 在结点表的下标在结点表的下标在结点表的下标在结点表的下标为为为为 i i 的结点记录中,该记录还可保存该结点的其的结点记录中,该记录还可保存该结点的其的结点记录中,该记录还可保存
24、该结点的其的结点记录中,该记录还可保存该结点的其它信息。它信息。它信息。它信息。在邻接表的边链表中,在邻接表的边链表中,在邻接表的边链表中,在邻接表的边链表中,各个边结点的链入顺序任意,各个边结点的链入顺序任意,各个边结点的链入顺序任意,各个边结点的链入顺序任意,视边结点输入次序而定。视边结点输入次序而定。视边结点输入次序而定。视边结点输入次序而定。设图中有设图中有设图中有设图中有 n n 个结点,个结点,个结点,个结点,e e 条边,则条边,则条边,则条边,则用邻接表表示无用邻接表表示无用邻接表表示无用邻接表表示无向图时向图时向图时向图时,需要,需要,需要,需要 n n 个结点,个结点,个结
25、点,个结点,2 2e e 个边结点;用个边结点;用个边结点;用个边结点;用邻接表邻接表邻接表邻接表表示有向图时表示有向图时表示有向图时表示有向图时,若不考虑逆邻接表,只需,若不考虑逆邻接表,只需,若不考虑逆邻接表,只需,若不考虑逆邻接表,只需 n n 个结个结个结个结点,点,点,点,e e 个边结点。个边结点。个边结点。个边结点。12/20/202223第第6章章 图图邻接表邻接表特点:特点:n仍为结点之间邻接关系仍为结点之间邻接关系n节省空间节省空间n结点的度:结点的度:无向图:无向图:为该结点的单链表中结点数目。为该结点的单链表中结点数目。有向图:有向图:出度:出度:为该结点的单链表中结点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构
限制150内