【09-06】数据结构学习笔记-图篇00

图的存储结构

  • 邻接矩阵(数组表达)
  • 邻接表(链表结构,表达有向图)
  • 十字链表(链表结构,表达有向图)
  • 邻接多重表(表达无向图)

图的结构

边|弧

  • 弧尾
  • 弧头
  • 权重

邻接矩阵(二维数组可以表达)

  • 顶点索引
  • 顶点数据
struct Node{
    顶点索引;
    顶点数据;
}

struct Map{
    顶点数据;
    邻接矩阵;
}

邻接表(链式存储,记录出弧链表)

  • 顶点表示
    1. 顶点索引
    2. 出弧链表头指针
    3. 顶点数据
  • 弧的表示方法
    1. 弧头顶点索引
    2. 下一条弧指针
    3. 弧数据
struct Node{
    顶点索引;
    该节点弧链表的头节点;
    顶点数据;
}

struct Arc{
    指向的顶点索引;
    指向下一条弧的指针;
    弧信息;
}

struct Map{
 顶点数组;
}

逆邻接表(记录入弧链表)

  • 顶点表示
    1. 顶点索引
    2. 入弧链表头指针
    3. 顶点数据
  • 弧的表示方法
    1. 弧尾顶点索引
    2. 下一条弧指针
    3. 弧数据

十字链表

  • 顶点表示
    1. 顶点索引
    2. 顶点数据
    3. 以该丁顶点为弧尾的弧节点指针
    4. 以该节点为弧头的弧节点指针
  • 弧的表示
    1. 弧尾顶点索引
    2. 弧头顶点索引
    3. 弧尾相同的下一条弧的指针
    4. 弧头相同的下一条弧的指针
    5. 弧的数据