数据结构之图的基本概念

来源:互联网 发布:果园农场源码 编辑:程序博客网 时间:2024/06/06 14:12

图是一种典型的比线性结构与树形结构更加复杂的非线性结构。线性结构是一对一,树形结构是一对多,而图形结构则是多对多。图的应用很广泛,但是必须先要了解图的基本概念。

图的定义

图是由顶点的有穷非空集合和一个描述顶点之间关系——边(或者弧)的集合组成的。一般,图中的数据元素被称为顶点,顶点之间的关系用顶点对(边)表示。图通常用字母G表示。图的顶点用字母V表示,因此图可定义为:
图G由两个集合V(G)和E(G)组成,记作G=(V ,E ),其中V (G)是图中顶点的有穷非空集合,E(G)是V(G)中顶点的偶对(称为边)的有穷集合。

注意
1、线性结构中的数据元素称为元素;树中的数据元素称为节点;图中的元素称为顶点
2、线性表中可以是空表,树也可以是空树;但图结构,不允许没有顶点,图的定义中明确指出顶点集合V(G)有穷非空。
3、线性结构中,相邻数据元素之间具有线性关系;树结构中,相邻两层的节点具有层次关系;而在图中,任意两个顶点之间都可能有关系。

图的相关术语

无向图:顶点之间的连线是没有方向的,则该图为无向图。

有向图:顶点之间的连线是有向的,则该图为有向图。

无向完全图:若一个无向图有n个顶点,且每个顶点与其他n-1个顶点之间都有边,这样的图称为无向完全图。(对于一个具有n个顶点的无向完全图,它共有n(n-1)/2条边)。

有向完全图:若一个有向图有n个顶点,且每个顶点与其他n-1个顶点之间都有一条以该顶点为弧尾的弧,这样的图称为有向完全图。(对于一个具有n个顶点的无向完全图,它共有n(n-1)条边)。

稠密图:若一个图不是完全图,但接近完全图,则为稠密图。

稀疏图:边数很少的图称为稀疏图。

顶点的度:顶点的度是指依附于某个顶点V的边数,通常记作TD(V)。在有向图中,要区别顶点的入度和出度的概念,顶点的入度即以顶点为终点的弧的数目,记为ID(V );顶点的出度即以顶点为始点的弧的数目,记为OD(V)。有TD(V)=ID(V)+OD(V)。 边数E=TD(V)之和/2。

权(weight):图中边或弧的相关数据信息。

网(Network):边上带权的图称为网或带权图。网根据其边的方向性又可分为有向网和无向网。

路径、路径长度:在无向图G中,从一个顶点到另一个顶点的序列称为路径。路径上边的数目称为路径长度。

简单路径:在一条路径中,如果路径序列中所有的顶点除起始点和终止点之外彼此都是不同的,则称为该路径为简单路径。

回路:如果一条路径中第一个顶点和最后一个顶点相同,则称该路径为回路或环。若简单路径中第一个顶点和最后一个顶点相同,该简单路径为简单回路。

子图:对于图G=(V,E),G‘=(V‘,E’),若存在V‘是V的子集,E’是E的子集,则称图G’是G的一个子图。

连通图:在无向图中,若顶点Vi到顶点Vj有路径,则称Vi和Vj是连通的。若无向图中任意两个顶点都是连通的则称该无向图为连通图,否则称为非连通图。
极大连通子图:所谓极大连通子图是指,如果再往该子图中加入原图的任何一个顶点,该子图就不能连通。无向图中的极大连通子图称为该无向图的连通分量。因此:连通图的连通分量就是其本身的图;而非连通图则必然有多个连通分量。

强连通图、强连通分量:在有向图中,任意两个顶点Vi和Vj都存在从Vi到Vj以及从Vj到Vi的路径,则称该有向图为强连通图,否则称为非强连通图;有向图的极大强连通子图称为该图的强连通分量。因此,强连通图的强连通分量就是其本身的图。

生成树:连通图G的一个子图如果是一颗包含G的所有顶点的树,则称该子图为G的生成树(Spanning Tree)。在生成树中添加任意一条属于原图中的边必然会产生回路,因为新添加的边使得所依附的两个顶点之间有了第二条路径。若生成树缺少一条边,则必然成为非连通的。(有n个顶点的连通图的生成树必有n-1条边)

总结
图的基本概念差不多都在这里了,如果你还没有完全看懂,那么你得加油了,因为这些东西都是基础的概念,反观看懂了也代表不了什么,最重要的是接下来的学会了解与运用。

原创粉丝点击