图(Graph)是一种比线性表和树更为复杂的数据结构。
线性结构:研究数据元素之间的一对一关系。除第一个和最后一个元素外,任何一个元素都有唯一的一个直接前驱和直接后继。
树结构:是研究数据元素之间的一对多的关系。每个元素对下(层)可以有0个或多个元素相联系,对上(层)只有唯一的一个元素相关,数据元素之间有明显的层次关系。
图结构:研究数据元素之间的多对多的关系。在这种结构中,任意两个元素之间可能存在关系。即结点之间的关系可以是任意的,图中任意元素之间都可能相关。
图的应用极为广泛,已渗入到诸如语言学、逻辑学、物理、化学、电讯、计算机科学以及数学的其它分支。
图:是由顶点构成的有穷非空集合和顶点之间边的集合组成。通常表示为G=(V,E) 。其中:
G:表示一个图;
V:G中顶点(Vertex)的集合,记为V(G);
E:图G中边的集合,记为E(G) 。
注意点:
1、图中数据元素,称为顶点(Vertex)(线性表:元素;树:结点)
2、顶点集合有穷非空(线性表:空表;树:空树)
3、图中任意两个结点都可能有关系,顶点之间的逻辑关系用边来表示。(线性表:线性关系;树:层次关系)
无向图(Undirected graphs)
无向边:顶点v到w之间的边没有方向。用无序偶对(v, w)表示。
无向图:图中任意两个顶点之间的边都是无向边。
在无向图中,对?(v,w)?E(G) ,有(w,v)?E(G) ,即E(G)是对称,则用 (v,w)或(w,v) 表示v和w之间的一条边即可。
有向边:顶点v到w之间的边有方向。有向边也称为弧(Arc),用有序偶对(v, w)表示。 v称为弧尾(tail)或初始点(initial node),w称为弧头(head)或终点(terminal node) 。
有向图:图中任意两个顶点之间的边都是有向边。
对于无向图,若图中顶点数为n ,边的数目为e,则e ?[0,n(n-1)/2 ] 。
完全无向图:具有n(n-1)/2条边的无向图;
即:图中任意两个不同的顶点间都有一条无向边。
数学定义:
对于无向图G=(V,E),对?vi,vj?V ,当vi ≠vj,有<vi ,vj>?E。
对于有向图,若图中顶点数为n ,弧的数目为e,则e?[0,n(n-1)] 。
完全有向图:具有n(n-1)条边的有向图;
即:图中任意两个不同的顶点间都存在方向相反的两条弧。
数学定义:
对于有向图G=(V,E),对?vi,vj?V ,当vi ≠vj时,有<vi ,vj>?E∧<vj , vi >?E ,
有很少边或弧的图(e
有向图顶点与边的关系:
顶点的邻接,对有向图G=(V ,E),若有向弧(v,w)?E,则称
顶点v “邻接到”顶点w,
顶点w “邻接自”顶点v ,
弧(v,w) 与顶点v和w “相关联” 。
顶点的入度、出度:对有向图G=(V ,E), ?vi ?V ,
以vi作为起点(弧尾)的有向边(弧)的数目称为顶点vi的出度(Outdegree),记为OD(vi) ;
以vi作为终点(弧头)的有向边(弧)的数目称为顶点vi的入度(Indegree),记为ID(vi) 。
顶点vi的出度与入度之和称为vi的度,记为TD(vi) 。即
TD(vi)=OD(vi)+ID(vi)
对无向图G=(V,E),若从顶点v经过若干条边能到达w,称顶点v和w是连通的,又称顶点v到w有路径(Path) 。其路径是一个顶点序列
(v=vi0vi1…vim=w) ,vij?V且(vij-1, vij)?E j=1,2, …,m
对有向图G=(V,E),从顶点v到w有有向路径,指的是从顶点v经过若干条有向边(弧)能到达w。即
(v=vi0vi1…vim=w) ,vij?V且(vij-1, vij)?E j=1,2, …,m
路径的长度:路径上的边或有向边(弧)的数目。
简单路径:在一条路径中,没有重复相同的顶点;
回路(环):第一个顶点和最后一个顶点相同的路径;
简单回路(简单环):在一个回路中,若除第一个与最后一个顶点外,其余顶点不重复出现。
对无向图G=(V,E),
如果对图中任两个顶点vi ,vj ?V,vi和vj都是连通的,则称图G是连通图,否则称为非连通图。
若G是非连通图,则极大的连通子图称为G的连通分量。 (如果从顶点v到w有路径,称v和w是连通的。)
对有向图G=(V,E),
若?vi ,vj ?V, vi ≠vj都有从vi到 vj 和从vj到vi的有路径,称图G是强连通图,否则称为非强连通图。
若G是非强连通图,则极大的强连通子图称为G的强连通分量。
“极大”的含义:指的是对子图再增加图G中的其它顶点,子图就不再连通。
生成树:一个连通图(无向图)的生成树是一个极小连通子图,它含有图中全部n个顶点和只有足以构成一棵树的n-1条边,称为图的生成树。
关于无向图的生成树的几个结论:
一棵有n个顶点的生成树有且仅有n-1条边;
如果一个图有n个顶点和小于n-1条边,则是非连通图;
如果多于n-1条边,则一定有环;
有n-1条边的图不一定是生成树。
有向树:只有一个顶点的入度为0 ,其余顶点的入度均为1的有向图。
生成森林:一个有向图的生成森林是由若干棵有向树组成,含有图中全部顶点,但只有足以构成若干棵不相交的有向树的弧。
带权图:每个边(或弧)都附加一个权值的图。
网或网络:带权的连通图(包括弱连通的有向图)。
网络是工程上常用的一个概念,用来表示一个工程或某种流程
原文地址:http://blog.csdn.net/wangzi11322/article/details/45417081