北京白癜风治疗最好的医院是哪个 http://pf.39.net/bdfyy/bdfzd/图是一种数据结构,其中,一个节点可以有零个或多个相邻节点,节点之间的连线称为边。节点也可以称为顶点。
上图为一个抽象的图,其中顶点的集合为{A,B,C,D,E},边的集合为{A-B,A-D,B-D,B-C,D-E}
注意:在无向图中,A-B和B-A是一样的。
集合表示定义:图的集合G是由集合V和集合E组成,即G={V,E},V表示图中所有顶点的集合,E表示顶点之间所有边的集合。如果集合E中的元素是有向的,则图G为有向图,否则为无向图。
图的基本概念
无向图
有向图
带权图
图的存储方式
图的存储方式分为两种,分别为邻接表和邻接矩阵。
邻接矩阵
将图中所有节点像下面的形式写出来,右边就写1,没有边就写0或无穷。
上图转化为邻接矩阵表示为:
邻接表邻接表只关心存在的边,不管不存在的边,因此没有存储空间的浪费,存储空间比邻接矩阵表示要小得多。
邻接表表示如下:
深度优先遍历和广度(宽度)优先遍历深度优先遍历:首先访问首节点的邻接点,再以这个邻接点作为首节点接着访问它的邻
接点以此类推。显然,深度优先遍历是一个递归的过程。
广度(宽度)优先遍历:广度优先遍历相当于一个层的遍历,从左到右遍历完第一层后
接着从左到右遍历第二层,以此类推。
如图:深度优先遍历为,广度优先遍历为