数据结构——图

数据结构 专栏收录该内容
12 篇文章 0 订阅

一、图的逻辑结构

图的定义

图是由顶点有穷非空集合和顶点之间的集合组成,通常表示为:
G=(V,E)
其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。
在线性表中,元素个数可以为零,称为空表;
在树中,结点个数可以为零,称为空树;
在图中,顶点个数不能为零,但可以没有边。
在这里插入图片描述

图的基本术语

数据结构中讨论的都是简单图
简单图:在图中,若不存在顶点到其自身的边,且同一条边不重复出现。
在这里插入图片描述

图的遍历操作

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

1.深度优先搜索 (DFS:Depth First Search)

基本思想
⑴ 访问顶点v;
⑵ 从v的未被访问的邻接点中选取一个顶点w,从w出发进行深度优先遍历;
⑶ 重复上述两步,直至图中所有和v有路径相通的顶点都被访问到。
在这里插入图片描述

2.广度优先遍历 (BFS:Broad First Search ;FIFO: First In First Out)

基本思想
⑴ 访问顶点v;
⑵ 依次访问v的各个未被访问的邻接点v1, v2, …, vk;
⑶ 分别从v1,v2,…,vk出发依次访问它们未被访问的邻接点,并使“先被访问顶点的邻接点”先于“后被访问顶点的邻接点”被访问。直至图中所有与顶点v有路径相通的顶点都被访问到。
在这里插入图片描述

二、图的存储结构及实现

邻接矩阵(数组表示法)

存储基本思想
用一个一维数组存储图中顶点的信息
用一个二维数组(称为***邻接矩阵***)存储图中各顶点之间的邻接关系。
假设图G=(V,E)有n个顶点,则邻接矩阵是一个n×n的方阵,定义为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

邻接矩阵存储无向图的类

代码实现

const int MaxSize=10; 
template <class T>
class Mgraph{
   public:
      MGraph(T a[ ], int n, int e );   
       ~MGraph( )
       void DFSTraverse(int v); 
       void BFSTraverse(int v);
        ……
   private:
       T vertex[MaxSize]; 
       int arc[MaxSize][MaxSize]; 
       int vertexNum, arcNum; 
};

三、图的连通性

四、最小生成树

五、最短路径

六、AOV网与拓扑排序

七、AOE网与关键路径

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值