第六章 图

来源:互联网 发布:网上开店软件排名 编辑:程序博客网 时间:2024/06/14 21:04

6.1图的逻辑结构

  1、若顶点vi和vj之间的边没有方向,则称这条边为无向边,表示为(vi,vj)。

  2、如果图的任意两个顶点之间的边都是无向边,则称该图为无向图
  3、若从顶点vi到vj的边有方向,则称这条边为有向边,表示为<vi,vj>。
  4、如果图的任意两个顶点之间的边都是有向边,则称该图为有向图
 5、简单图:在图中,若不存在顶点到其自身的边,且同一条边不重复出现。
 6、邻接、依附
     无向图中,对于任意两个顶点vi和顶点vj,若存在边(vi,vj),则称顶点vi和顶点vj互为邻接点,同时称边(vi,vj)依附于顶点vi和顶点vj。
    有向图中,对于任意两个顶点vi和顶点vj,若存在弧<vi,vj>,则称顶点vi邻接到顶点vj,顶点vj邻接自顶点vi,同时称弧<vi,vj>依附于顶点vi和顶点vj 。
 7、图的基本术语
    

稀疏图:称边数很少的图为稀疏图;

稠密图:称边数很多的图为稠密图。

   

顶点的度:在无向图中,顶点v的是指依附于该顶点的边数,通常记为TD (v)。
   顶点的入度:在有向图中,顶点v的入度是指以该顶点为弧头的弧的数目,记为ID (v);

   顶点的出度:在有向图中,顶点v的出度是指以该顶点为弧尾的弧的数目,记为OD (v)。

6.2图的存储结构及实现

 1、邻接矩阵中图的基本操作——构造函数 
     1.确定图的顶点个数和边的个数;

     2. 输入顶点信息存储在一维数组vertex中;

     3. 初始化邻接矩阵;

     4. 依次输入每条边存储在邻接矩阵arc中;

     4.1 输入边依附的两个顶点的序号i, j;

     4.2 将邻接矩阵的第i行第j列的元素值置为1;

     4.3 将邻接矩阵的第j行第i列的元素值置为1;

2、邻接表存储的基本思想:对于图的每个顶点vi,将所有邻接于vi的顶点链成一个单链表,称为顶点vi的边表(对于有向图则称为出边表),所有边表的头指针和存储顶点信息的一维数组构成了顶点表。

6.3  最小生成树

   1、生成树的代价:设G = (V, E)是一个无向连通网,生成树上各边的权值之和称为该生成树的代价。
   2、最小生成树:在图G所有生成树中,代价最小的生成树称为最小生成树。 
  3、 Prim算法、Kruskal算法

6.4  最短路径

1、Dijkstra算法、Floyd算法

6.5  有向无环图及其应用 

  1、拓扑排序:对一个有向图构造拓扑序列的过程称为拓扑排序 。
  2、拓扑排序

基本思想:(1) 从AOV网中选择一个没有前驱的顶点并且输出;

(2)从AOV网中删去该顶点,并且删去所有以该顶点为尾的弧;

(3)重复上述两步,直到全部顶点都被输出,或AOV网中不存在没有前驱的顶点。



0 0