数据结构——图及算法简介(二)

图(graph):是一种较线性表和树更为复杂的数据结构,图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关 
线性表:数据元素之间仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继 
树:树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中多个元素(即其孩子结点)相关,但只能和上一层中一个元素(即其双亲结点)相关

图分为有向图、无向图,无向图由定点和边组成,有向图有顶点和弧组成,弧分为弧头、弧尾。

图按照节点和边(弧)的多少分为,稀疏图、稠密图,这两者没有具体界定只是个人感觉概念。任意两个顶点之间都存在边就叫完全图,有向的叫有向完全图,无重复的边或者顶点到自身的边叫简单图。

顶点之间有邻接点、依附概念。无向图顶点的边数叫度,有向图分为入度、出度。

图上的边、弧带有权的叫网

顶点直接存在路径,两顶点直接存在路径就说明是连通的。如果路径能回到最初点就叫环,不重复的叫简单路径。任意两点都是连通的叫连通图,有向的叫强连通图。图中若包含子图,子图的最大连通就是连通分量,有向的称为强连通分量。

无向图中,连通且n个点,n-1条边叫生成树。有向图中一顶点入度为0其余顶点入度为1叫有向树,一个图由若干条有向树组成叫生成森林。

图的存储方式:

1、邻接矩阵存储又称为二维数组存储:图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示图。一个一维的数组储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息

待续

2、邻接表存储法:数组与链表相结合的存储方法

3、十字链表存储法

猜你喜欢

转载自www.cnblogs.com/szss/p/9636296.html
今日推荐