与搜索算法有关系的几个基本概念
2011-01-14 19:56
176 查看
具体进入算法研究之间先要了解几个基本概念:
1. 图的概念。
图的表示方法是G=(V,E)。其中G代表Graphic, V代表Vertex,称为图G的顶点集; E代表Edge,称为图G的边集。
图又分为两种:有向图和无向图。见下图。
![](http://hi.csdn.net/attachment/201101/14/0_1295006216Pddp.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006217E9K5.gif)
其中图(a)是有向图,图(b)是无向图。
使用G=(V,E)来表示图(a)的话。其中V={1, 2, 3, 4, 5, 6};E={(1,2),(2,2),(2,4),(2,5),(4,1),(4,5),(5,4),(6,3)} 。其中(4,5)和(5,4)表示的是不同的边。
使用G=(V,E)来表示图(b)的话。其中V={1, 2, 3, 4, 5, 6};E={(1,2),(1, 5), (2, 5), (3, 6)} 。
邻接的概念:如果(u,v)是图G=(V, E)中的一条边,则说顶点v与顶点u邻接。上面两个图中顶点2都与顶点1邻接。而a图中顶点1与顶点2不邻接,因为(2,1)不是a途中的一个边。b图中顶点1与顶点2邻接。
度的概念:无向图中一个顶点的度是指与之关联的边的数目。例如图b中顶点2的度是2。
有向图中一个顶点的度数是其出度与入度之和。出度是指离开它的边的数目,而入读是指进入它的边的数目。例如图a中的顶点2的度数是5。其中入度是2,出度是3。
2. 图的表示法。
要表示图G=(V, E)有两种方法:邻接表和邻接矩阵。
下图三个图是无向图的表示方法,图b是邻接表,图c是邻接矩阵。
![](http://hi.csdn.net/attachment/201101/14/0_1295006217E5N9.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006218rYHV.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006218qg5n.gif)
下面三个图是有向图的表示方法,可以仔细品味一下与无向图的区别。
![](http://hi.csdn.net/attachment/201101/14/0_1295006220F2QU.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006220atBM.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006221UmyN.gif)
用邻接表表示加权图:只要在顶点u的邻接表中对应每个顶点v都增加一个权值w(u,v),就可以表示一个加权图了。
用邻接矩阵表示加权图:只要把上图中的1改成权值w就可以了。
关于存储空间的几点考虑:
1.显然一个邻接矩阵占用的存储空间是:每个元素的大小*V*V。和边数无关。
2.对于无向图来说,它的邻接矩阵是主对角线对称的,也就是说存储的时候可以只存储对角线以上的部分,从而可以节省几乎一半的存储空间。
3.如果不是加权图,那么使用邻接矩阵可以只用一个位而不是一个字空间来存储每一个矩阵元素。
1. 图的概念。
图的表示方法是G=(V,E)。其中G代表Graphic, V代表Vertex,称为图G的顶点集; E代表Edge,称为图G的边集。
图又分为两种:有向图和无向图。见下图。
![](http://hi.csdn.net/attachment/201101/14/0_1295006216Pddp.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006217E9K5.gif)
其中图(a)是有向图,图(b)是无向图。
使用G=(V,E)来表示图(a)的话。其中V={1, 2, 3, 4, 5, 6};E={(1,2),(2,2),(2,4),(2,5),(4,1),(4,5),(5,4),(6,3)} 。其中(4,5)和(5,4)表示的是不同的边。
使用G=(V,E)来表示图(b)的话。其中V={1, 2, 3, 4, 5, 6};E={(1,2),(1, 5), (2, 5), (3, 6)} 。
邻接的概念:如果(u,v)是图G=(V, E)中的一条边,则说顶点v与顶点u邻接。上面两个图中顶点2都与顶点1邻接。而a图中顶点1与顶点2不邻接,因为(2,1)不是a途中的一个边。b图中顶点1与顶点2邻接。
度的概念:无向图中一个顶点的度是指与之关联的边的数目。例如图b中顶点2的度是2。
有向图中一个顶点的度数是其出度与入度之和。出度是指离开它的边的数目,而入读是指进入它的边的数目。例如图a中的顶点2的度数是5。其中入度是2,出度是3。
2. 图的表示法。
要表示图G=(V, E)有两种方法:邻接表和邻接矩阵。
下图三个图是无向图的表示方法,图b是邻接表,图c是邻接矩阵。
![](http://hi.csdn.net/attachment/201101/14/0_1295006217E5N9.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006218rYHV.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006218qg5n.gif)
下面三个图是有向图的表示方法,可以仔细品味一下与无向图的区别。
![](http://hi.csdn.net/attachment/201101/14/0_1295006220F2QU.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006220atBM.gif)
![](http://hi.csdn.net/attachment/201101/14/0_1295006221UmyN.gif)
用邻接表表示加权图:只要在顶点u的邻接表中对应每个顶点v都增加一个权值w(u,v),就可以表示一个加权图了。
用邻接矩阵表示加权图:只要把上图中的1改成权值w就可以了。
关于存储空间的几点考虑:
1.显然一个邻接矩阵占用的存储空间是:每个元素的大小*V*V。和边数无关。
2.对于无向图来说,它的邻接矩阵是主对角线对称的,也就是说存储的时候可以只存储对角线以上的部分,从而可以节省几乎一半的存储空间。
3.如果不是加权图,那么使用邻接矩阵可以只用一个位而不是一个字空间来存储每一个矩阵元素。
相关文章推荐
- 与搜索算法有关系的几个基本概念
- 关于图像归一化中用到几个基本概念
- 黑马程序员-JS基础知识回顾一------------几个基本概念
- 网络应用SOCKET的几个基本概念
- 与构架有关的几个基本概念
- XML几个重要基本概念
- Entity Framework4.0 (四) EF4的内部结构和几个基本概念(转)
- 关于Visual Studio几个基本的概念
- 关于功率放大电路的几个基本概念
- 关于J2EE Tranaction的几个基本概念
- WebLogic 几个基本概念
- DNS的几个基本概念:
- Photography的几个基本概念
- cocos2d-x从零入门04之几个基本概念
- 压力测试中需要掌握的几个基本概念
- iphone绘图的几个基本概念CGPoint、CGSize、CGRect、CGRectMake、window(窗口)、视图(view)
- COM中的几个基本概念
- 多线程的几个小程序,诠释多线程的基本概念
- 转--刚研究3D基本概念容易搞混的几个问题
- O3D的优点和几个基本概念