zoukankan      html  css  js  c++  java
  • 图的常用存储结构

    1.邻接矩阵:在图中任意两个顶点之间都有可能存在关系,邻接矩阵就是用n阶方针来保存一个顶点是否对另一个顶点有“意思”。

    ①无向图

    在无向图中两个顶点有边连接就意味着(v0,v1)和(v1,v0)都有“关系”,即彼此“喜欢”对方。方阵的数据沿对角线对称分布。

    ②有向图

    数据分布不对称。

    ③网的邻接矩阵存储:存在带权的边/弧。如果对对方有“意思”就把前边的“1”改为对应的权值即可。

    -------------------------------------------------------------------------------------------------------------------------------------------------------------

    2.邻接表AdjacencyList:诞生的理由——如果图中顶点多而边/弧的数目少,即顶点之间关系不好,那么整个方针里边就存了几个“1”,显然就很是浪费存储了,邻接矩阵存储的是顶点之间的关系,从空间的使用效率来说适合用于关系比较丰富的图,前人们为了满足关系简单而“人口”众多的图的最小空间开销想啊想,于是就发明了邻接表。

    这种表需要定义两个结构,一个是用来描述顶点的:用于存储顶点的数据信息和指向他“感兴趣”的第一个顶点的指针;另一个是用来描述“被感兴趣”的顶点下标,在有向图中对应的就是出度。

  • 相关阅读:
    我的canvasnode v0.1完成了
    我们的scrum实践
    好文转贴(6)——代码永远是罪魁祸首吗?
    关于“产品驱动”和“技术驱动”
    居然获“最受读者喜爱的IT图书作译者奖”了
    重写代码 多重登录
    图片验证码接口
    syl/settings.py中配置注册 权限认证
    码云 上传与克隆
    短信验证接口
  • 原文地址:https://www.cnblogs.com/lubiao/p/4822213.html
Copyright © 2011-2022 走看看