设为首页 加入收藏

TOP

数据结构 图的定义和搜索方法(清晰图解)(一)
2018-10-21 16:09:57 】 浏览:129
Tags:数据结构 义和 搜索 方法 清晰 图解

在计算机科学领域中,图是最为灵活的数据结构之一。

一般来说,图在定义对象之间的关系或联系这类问题上能够作为一种模型来帮助我们

图中的对象可以是具体的,比如网络中的结点;也可以是不具体的,比如数据库中的业务或系统中的状态。相同点是对象之间的关系和联系。网络上的结点是物理上相连接的,系统中状态之间的关系可能只是简单地表示为了达到下一个状态在当前所做出的决策。无论什么情况,图的模型都很有用,能够解决许多有趣的问题。

图的组成:图由两种类型的元素组成,顶点和边。

       顶点代表对象,边则建立起对象之间的关系或关联

图的有向:图要么是有向的,要么是无向的。

       在有向图中,边是由两个顶点组成的有序对,具有特定的方向。形象地说,有向图可以由顶点和带方向的箭头所组成的圈绘制出来。

       有时候,有向图的边也称为弧。

       在无向图中,边是没有方向的,因此,无向图的边就直接用线段来代替箭头表示。

 

 图的正式表示法G=(V , E),这里V代表顶点的集合,面E和V之间是一种二元关系

        在有向图中,如果某条边是从顶点u开始到顶点v结束,则E包含有序对(u,v)。比如上图中,V={1,2,3,4},而E={(1,2),(1,3),(1,4),(2,3),(2,4),(3,2),(3,4)}。

        但是按照惯例,在图中表示边的集合时,用圆括号而不是大括号。

        在无向图中,由于边(u,v)和(v,u)是一样的意思,因此在E中只需要记录其中一个就可以了。因此,在上图的b中,V={1,2,3,4},而E={(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)}。

        在有向图中,边可能会指回同一顶点,但在无向图中则不会出现这种情况。

图中的两个重要关系:邻接(adjacency)和关联(incidence)。

        邻接是两个顶点之间的一种关系。如果图包含边(u,v),则称顶点v和顶点u邻接。在无向图中,这也暗示了顶点u和顶点v邻接。换句话说,在无向图中邻接关系是对称的。

        而在有向图中则并非如此,比如上图a中,顶点2与顶点1相邻接,但顶点1并不与顶点2相邻接。另一方面,顶点2和顶点3则互为邻接。

        如果一幅图中的每一个顶点都与其他顶点相邻接,则称这幅图是完全图。

        关联是指顶点和边之间的关系。在有向图中,边(u,v)从顶点u开始关联到顶点v,或者相反,从顶点v开始关联到顶点u。因此,在上图a中,边(1, 2)从顶点1开始关联到顶点2。

        在有向图中,顶点的入度指的是以该顶点为终点的边的数目。而顶点的出度指的是以该顶点为起点的边的数目。

        在无向图中,边(u,v)与顶点u和v相关联,而顶点的度就是与该顶点相关联的边的数目。

图的路径:路径是依次遍历顶点序列之间的边所形成的轨迹。

        正式的说法是,顶点u到另一个顶点u‘的路径由顶点序列<v0,v1,v2,...vk>组成,使得u=v0且u'=vk,对于i=1,2,...,k,所有的(vi-1,vk)均属于E。这样的一条路径包含边

        (v0,v1),(v1,v2),...(vk-1,vk),且长度为k。

        如果存在一条从u到u’的路径,则称u‘从u是可达的。

        没有重复顶点的路径称为简单路径。

环:是指路径包含相同的顶点两次或两次以上。

        也就是说,在有向图的一条路径中, 如果从某个顶点出发,最后能够驾到该顶点,则该路径是环。图2中包含环{1,2,4,1}。

        正式的说法是,在有向图中,如果v0=vk,且路径包含至少一条边,则该路径组成一个环。

        在无向图中,有路径<v0,v1,v2,...,vk>,如果有v0=vk且从v1到vk中没有重复的顶点,则该路径组成一个环。

        没有环的图称为无环图。有向无环图有特殊的名称,叫做DAG(Directed Acyline Graph)。

联通性:连通性是图中的一个重要概念。对于无向图而言,如果它的每个顶点都能通过某条路径到达其他顶点,那么我们称它为连通的。

        如果该条件在有向图中同样成立,则称该图是强连通的。

        尽管无向图可能不是连通的,但它仍然可能包含连通的部分,这部分称为连通分支。如果有向图中只有部分是强连通的,则该部分称为强连通分支。如图3。

        某些特定的于保持图或连通分支的连通性有特殊重要的意义。如果移除某个顶点将使得图或分支失去连通性,则称该顶点为关结点。

        如图4,顶点4和5都是关结点因为如果它们中的任意一个被移除,图就变成非连通的了。移除这些顶点后,图中拥有两个连通分支{1,2,3}和{6,7,8}。

        如果移除某条边会使得图失去连通性,则称该边为桥。没有关结点的连通图称为双连通图。尽管图本身可能不是双连通的,但它仍然可能包含双连通分支。

图的表示方法:最常用来表示图的方法是采用邻接表表示形式,邻接表按照链表的方式组织起来。

     

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言Linix服务器网络爬虫项目(.. 下一篇南阳 ACM16 矩形嵌套 动态规划

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目