数据结构day1-图

数据结构-陈越

图(Graph)的定义

表示“多对多”的关系

  • 线性表:一对一
  • 树:一对多
  • 线性表和树可以看作图的特殊情况

包含

  • 一组顶点:V(Vertex)->有限非空
  • 一组边:E(Edge->有限
  • 边是顶点对 (v,win) ∈ \in E,其中v.w ∈ \in V
  • 有向边<v,w>表示从v指向w的边
  • 不考虑重边和有向边
    (六度空间理论、最小生成树)

常见术语

无向图,有向图,网络(带权重)……

程序中表示图

邻阶矩阵

邻接矩阵

  • 对角线为0
  • 对称的(无向图)->浪费一半的空间
    ->用一维数组存一半的元素
  • 省空间但是查找更复杂
    查找方法
    网络则把值从1定义为权重

好处

  • 简单直观
  • 方便检查是否有边
  • 查找顶点的邻接点
  • 方便计算度(入度和出度)
    - 无向图:对应行或者列非零元素个数 (无出入之分)
    - 对应行非零是出度。列是入度
  • 坏处
  • 浪费空间(稀疏图)->稠密图合算
  • 浪费时间eg统计边
邻接表

指针数组(一个数组,里面装的指针)
一个矩阵每行一个链表(二维矩阵的第二维是线性表而不是数组),只存非0元素
不唯一,顺序无所谓
邻接表
够稀疏才合算

特点

  • 方便查找任一顶点的”邻接点“
  • 节约稀疏图空间
    • 需要N个头指针+2*E个节点(每个节点至少2个域)
  • 计算度
    • 无向图:方便
    • 有向图:出度only,入度:构造逆邻接表(因为这种二维矩阵无法竖着访问。只能再建造一个了)
  • 不方便检查任意一对顶点间存在边

最后。图还有别的表达方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值