图的邻接表存储
发布时间: 2024-11-17 06:35:43
❶ 邻接表存储时,空间复杂度O( n+e),还是O(n)
O(n+e),取n次最小权,每次取完会进行n次更新。如果能达到o(n+e),就不需要O(n)。
在有向图中,描述每个点向别的节点连的边(点a->点b这种情况)。在无向图中,描述每个点所有的边。与邻接表相对应的存图方式叫做边集表,这种方法用一个容器存储所有的边。
对于有向图,vi的邻接表中每个表结点都对应于以vi为始点射出的一条边。因此,将有向图的邻接表称为出边表。
(1)图的邻接表存储扩展阅读:
n个顶点e条边的有向图,它的邻接表表示中有n个顶点表结点和e个边表结点。(因为有向图是单向的)
在有向图中,为图中每个顶点vi建立一个入边表的方法称逆邻接表表示法。入边表中的每个表结点均对应一条以vi为终点(即射入vi)的边。
n个顶点e条边的有向图,它的逆邻接表表示中有n个顶点表结点和e个边表结点。
❷ 用邻接表存储图所用的空间大小与什么有关
用邻接表存储图所用的空间大小与图的顶点数和边数有关。有一个图有n个顶点和e条边,则在对应的邻接表中,表头向量大小等于顶点数。此图是无向图,则每条边在邻接表中出现两次,即需要2e个存储单元。此图是有向图,则每条边只在邻接表中出现一次,即需要P个存储单元。由此可知用邻接表存储图所用的空间大小与图的顶点数和边数都有关系。
❸ 稀疏图为什么用邻接表存储而不用邻接矩阵我知道是空间效率问题,怎么个说啊谢谢大神!
既然是稀疏图 那么每个节点的邻居节点数目肯定少咯 当然用邻接表(N个节点,用N*m个位置,m为每个节点的平均邻居数目)
要是用邻接矩阵的话 每个节点都要给邻居空N-1个位置(N个节点,需要N*N个位置)
当m远小于N时(稀疏图就符合这种情况),当然邻接表省空间。
热点内容