图的定义和基本术语

前言:

        线性表中结点之间的关系是一对一的;树结构中结点之间的关系是一对多;而图结构中的顶点之间的关系是多对多的,因此,图是一种比较复杂的非线性数据结构。

        图作为一种非线性结构,被广泛应用于多个技术领域。

一.图的定义

1.图的定义

图(Graph)

        由顶点和边组成,顶点表示图中数据元素,边表示数据元素之间的关系。记为G=(V,E),其中V是顶点(Vertex)的非空有穷集合,E是用顶点对表示的边(Edge)的有穷集合,可以为空。其形式为:

Graph=(V,R)

V={x∣x∈DataObject}

R={VR}

VR={<x,y>∣P(x,y)∧(x,y∈V)} 

2.无向图

        若图G中表示边的顶点对是无序的(称为无向图),则称图G为无向图,通常用(Vi,Vj)表示顶点Vi和Vj减的无向边

3.有向图

        若图G中表示边的顶点对是有序的(称有向边),称图G为有向图,通常用<Vi,Vj>表示从顶点Vi到Vj的有向边,有向边<Vi,Vj>也称为弧,顶点Vi称为弧尾(或起始点),顶点Vj称为弧头(或终端点),用由弧尾指向弧头的箭头表示弧。

 说明:在图中,我们可以将任何一顶点看成是图的第一顶点,同理,对于任何顶点而言,它的邻接点之间也不存在顺序关系。为了操作的方便,我们需要将图中的顶点按任意序列排序起来。顶点在这个人为的随意排列的位置序号称为等到你在图的位置。

4.基本操作

(1)CreateGraph(G)   操作前提:已知图G不存在 操作结果:创建图G。

(2)DestoryGraph(G) 操作前提:已知图G存在; 操作结果:销毁图G。

(3)LocateVertex(G,v) 操作前提:已知图G存在,顶点v值合法; 操作结果:若顶点v在图G   中存在,则返回顶点v在图G中的位置。若图G中没有顶点v,则函数返回值为“空”。

(4)GetVertex(G,i) 操作前提:已知图G存在; 操作结果:返回图G中的第i个顶点的值。若i大于图G中顶点数,则函数返回值为“空”

(5)FirstAdjVertex(G,v) 操作前提:已知图G存在,顶点v值合法; 操作结果:返回图G中顶点v的第一个邻接点。若v无邻接点或图G中无顶点v,则函数值为“空”。 

(6)NextAdjVertex(G,v,w) 操作前提:已知图G存在,w是图G中顶点v的某个邻接点, 操作结果:返回顶点v的下一个邻接点(紧跟在w后面)。若w是v的最后一个邻接点,则函数值为“空”。

(7)InsertVertex(G,u) 操作前提:已知图G存在,u值合法; 操作结果:在图G中增加一个顶点u。

(8)DeleteVertex(G,v) 操作前提:已知图G存在,v值合法; 操作结果:删除图G的顶点v及与顶点v相关联的弧。

(9)InsertArc(G,v,w) 操作前提:已知图G存在,v值,w值合法; 操作结果:在图G中增加一条从顶点v到顶点w的弧。

(10)DeleteArc(G,v,w) 操作前提:已知图G存在,v值,w值合法,存在弧(v,w) ; 操作结果:删除图G中从顶点v到顶点w的弧。

(11)TraverseGraph(G) 操作前提:已知图G存在; 操作结果:按照某种次序,对图G的每个顶点访问一次且仅访问一次。 }ADT Graph

二.图的基本术语

        设用n表示图中顶点的个数,用e表示图中边或弧的数目,并且不考虑图中每个顶点到其自身的边或弧。

无向完全图:

        有n(n-1)/2条边(图中每个顶点和其余n-1顶点都有边相连)的无向图为无向完全图。

有向完全图:

         有n(n-1)条边(图中每个顶点和其余n-1顶点都有弧相连)的有向图为有向完全图。

稀疏图:

        对于有很少条边的图(e < n log n)称为稀疏图,反之称为稠密图。

 邻接点:

        对于无向图 G=(V,{E}),如果边(v,v/)∈E,则称顶点v,v/互为邻接点,即v,v/ 相邻接。边(v,v/)依附于顶点v和v/,或者说边(v,v/)与顶点v和v/ 相关联。  

        对于有向图G=(V,{A})而言,若弧<v,v/>∈A,则称顶点v邻接到顶点v/,顶点v/ 邻接自顶点v,或者说弧<v,v/>与顶点v,v/相关联。

度、入度和出度:

         对于无向图而言,顶点v 的度是指和v相关联的边的数目,记作TD(v)。

         对于有向图而言,顶点v的度有出度和入度两部分:以顶点v为弧头的弧的数目称为该顶点的入度,记作ID(v),以顶点v为弧尾的弧的数目称为该顶点的出度,记作OD(v)则顶点v的度为:    TD(v)= ID(v)+ OD(v)

权与网 :    

         在实际应用中,有时

图的边或弧上往往与具有一定意义的数有关,即每一条边都有与它相关的数,称为权,这些权可以表示从一个顶点到另一个顶点的距离或耗费等信息。将这种带权的图叫做赋权图或网。

 路径与回路:

         无向图G=(V,{E})中从顶点v到v/的路径是一个顶点序列v=vi 0,vi1,vi2,…,vin= v/ ,其中(vij-1,vij)∈E,1≤j≤n。 如果图G是有向图,则路径也是有向的,顶点序列应满足<vij-1,vij>∈A,1≤j≤n。   

        路径长度:指路径上经过的弧或边的数目。

回路或环:

        在一个路径中,若其第一个顶点和最后一个顶点是相同的,即v =v/,则称该路径为一个回路或环。

简单路径:

        若表示路径的顶点序列中的顶点各不相同,则称这样的路径为简单路径。

简单回路:

        除了第一个和最后一个顶点外,其余各顶点均不重复出现的回路为简单回路。

连通图:

       在无向图G=(V,{E})中,若从vi到vj有路径相通,则称顶点vi与vj是连通的。如果对于图中的任意两个顶点vi、vj∈V,vi,vj都是连通的,则称该无向图G为连通图。

       连通分量:无向图中的极大连通子图称为该无向图的连通分量。

 强连通图:

        在有向图G=(V,{A})中,若对于每对顶点vi、vj∈V且vi≠vj,从vi到vj和vj到vi都有路径,则称该有向图为强连通图。

        强连通分量:有向图的极大强连通子图称作有向图的强连通分量。

生成树:    

         一个连通图的生成树是指一个极小连通子图,它含有图中的全部顶点,但只有足已构成一棵树的n-1条边。如果在一棵生成树上添加一条边,必定构成一个环;因为这条边使得它依附的两个顶点之间有了第二条路经。一棵有n个顶点的生成树有且仅有n-1条边,如果它多于n-1条边,则一定有环。但是,有n-1条边的图不一定是生成树。如果一个图有n个顶点和小于n-1条边,则该图一定是非连通图。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值