数据结构-6.2图

前言-数据结构

数据结构是需要反复咀嚼,不管什么时候都可以重中获取现在在开发中的遇到的问题答案。

图的表示法

  • 顺序存储结构:数组表示法(邻接矩阵)
  • 链式存储结构:多重链表
  • 邻接表
  • 邻接多重表
  • 十字链表

图的邻接矩阵-表示各个顶点之间的关系如果两个顶点间有连线就在矩阵中置为1,没有就置为0

  • 无向图中

  • 矩阵是对称的

  • 第i行或第i列的个数为顶点的度

  • 矩阵中1的个数的一半为图的边的数目度

  • 很容易判断顶点i和顶点j之间是否有边相连

  • 无向图的邻接矩阵表示法
    在这里插入图片描述

    • 分析1:无向图的邻接矩阵是对称的;
    • 分析2:顶点i的度=第7行(列)中1的个数:
    • 特别:完全图的邻接矩阵中,对角元素为0,其余1.
  • 有向图中

  • 矩阵不一定对称的

  • 第i行的个数为顶点的出度

  • 第i列的个数为顶点的入度

  • 很容易判断顶点i和顶点j之间是否有弧相连

  • 矩阵中1的个数为图中弧的数目

  • 有向图的邻接矩阵表示法
    在这里插入图片描述

    • 分析1:有向图的邻接矩阵可能是不对称的。
    • 分析2:顶点的出度=第i行元素之和
    • 顶点的入度=第i列元素之和
    • 顶点的度=第i行元素之和+第i列元素之和
    • 注:在有向图的邻接矩阵中,
    • 第i行含义:以结点vi,为尾的弧(即出度边):
    • 第i列含义:以结点vi,为头的弧(即入度边)。
  • 例子如下图所示的无向图和有向图,画出他们的邻接矩阵
    在这里插入图片描述

网的邻接矩阵表示

在这里插入图片描述在这里插入图片描述

  • 例子
  • 网(即有权图)的邻接矩阵表示法
    在这里插入图片描述

邻接表

  • 头节点是info和指向第一个节点 表节点weight是网的权,如果没有代表无权就是
    在这里插入图片描述
    在这里插入图片描述

  • 把同一个顶点发出的边链接在同一个边链表中,链表的每一个结点代表一条边,叫做表结点(边结点),邻接点域adjvex保存 与该边相关联的另一项点的项点下标,链域next存放指向,同一链表中下一个表结点的指针,数据域weght存放边的权。边链表的表头指针存放在头结点中。头结点以顺序结构存储,其数据域mo存放顶点信息,链域first指向链表中第一个顶点。

无向图的邻接表

在这里插入图片描述

  • 顶点的顺序可以随便来 它的空间效率是 O(n+2e) ps:邻接表不唯一,因各个边结点的链入顺序是任意的(4->2->0, 4->3->1, 4->2->0, 3->2->1)
  • 第i个链表中结点数目为顶点i的度
  • 所有链表中结点的数目的一半为图中的边数
  • 占用的存储单元数目为n + 2e (显而易见,n头结点 + 它的其他结点)

有向图的邻接表

  • 顶点的顺序可以随便来 它的空间效率是 O(n+e)
  • 第i个链表中结点数目为顶点i的出度
  • 所有链表中结点的数目为图中的弧数
  • 占用的存储单元数目为n + e (显而易见,n头结点 + 它的其他结点)
    在这里插入图片描述

例子

  • 已知某网的邻接(出边)表,请画出该网络。在这里插入图片描述
  • 答案
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值