数据结构-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头结点 + 它的其他结点)
    在这里插入图片描述

例子

  • 已知某网的邻接(出边)表,请画出该网络。在这里插入图片描述
  • 答案
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41732253/article/details/109592301