《数据结构复习笔记》图

概要:

  1. 掌握图的定义与基本术语
  2. 掌握图的存储方式
  3. 掌握图的两种遍历方式
  4. 掌握图的最小生成树,最短路径,拓扑排序,关键路径的生成方式与算法

1,图的基本概念

    图的特点,图中的关系可以是任意的:任意一个节点都可以有零个或多个前驱,也可以有零个或多个后继,也都可以作为起始结点或终结结点。

1.1 图的定义与基本术语

    1,图的定义

    Graph = (V,E)  其中V为顶点的有限集合,E是边的有限集合,表示两个顶点之间的关系。

    2,图的基本俗语

    顶点,邻接点,有向图,无向图,完全图,顶点的度,稠密图和稀疏图,子图,边的权,网图,路径,路径长度,简单路径,回路,简单回路,平行边,重数,自环,简单图,联通,连通图,联通分量,强连通图,强联通分量,生成树,生成森林。

  • 网图:边上带权值的图称为网图或网络
  • 简单路径:若一条路径上除去起点和终点,其余顶点各不相同,则称次路径为简单路径
  • 简单图:既不含平行边也不含自环的图称为简单图
  • 一个联通图的生成树是包含了该连通图中全部顶点的一个极小连通子图。图的生成树不唯一。从不同的顶点触发进行遍历,可以得到不同的生成树。

2,图的存储结构

    常见的图的存储结构有邻接矩阵,邻接表,邻接多重表,和十字链表。

2.1 图的邻接矩阵存储

2.2 图的邻接表存储

    图的邻接表存储是一种链式存储与顺序存储相结合的存储结构。邻接表存储法既能保留邻接矩阵存储法的优点,又能很好地避免矩阵存储的缺点。这是因为,这种结构为图中的每个节点创建一个链表,链表中的节点为这个顶点的邻接点,这个结点称作表节点或者边节点。

2.3 图的十字链表存储

2.4 图的邻接多重表存储

3,图的遍历

3.1 深度优先遍历

3.2 广度优先遍历

4,最小生成树

4.1 什么是最小生成树

    生成树的概念:一个联通图的生成树,是包含了该联通图全部顶点的一个极小联通子图。顶点数目为n的联通图的生成树,必定具有n个顶点和n-1条边。为生成树上任意添加一条原图中存在的边,将会构成回路。不同的遍历算法会产生不同的生成树。

    加权图生成树的代价是指生成树所有边的权值之和。对于一个带权图,它的生成树可能不唯一,这些生成树的权值之和也可能不尽相同,最小生成树,就是指所有生成树中权值之和最小的那一颗(或多颗)。

    所以,一颗最小生成树满足下列条件:

  • 这是一颗生成树
  • 这颗树的权值之和是所有生成树中最小的

    假设现在有一个无向联通图G,有n个顶点。如果T是无向联通图G的一颗最小生成树,那么它包含以下性质:

  • 包含图G中的所有顶点,既它必定有n个顶点
  • 包含图G中的n-1条边
  • 不包含回路。若为T任意添加一条图G中存在而T还不包含的边,T将会构成回路
  • T是图G所有生成树中权值之和最小的那棵。

   最小生成树的应用

    求解连接所有结点的最小的加权图生成树

通常使用Prim(普里姆)算法和Kruskal(克鲁斯卡尔)算法这两种算法求解。

4.2 Prim算法

    假设当前有一个无向连通图G=(V,E)

这一块先略掉.. 

猜你喜欢

转载自blog.csdn.net/qq_39263663/article/details/80705024