数据结构之图的简介

什么是图(Graph)

表示多对多的关系,包含:

  • 一组顶点:V(Vertex)表示顶点集合
  • 一组边:E(Edge)表示边的集合

通过顶点对表示边:(v,w) 属于 E;有向边<v,w>表示v到w的边

怎么在程序中表示图

  • 邻接矩阵G[N][N]–N个顶点从0到N-1编号
    • 若i到j的边,G[i][j]=1;否则 G[i][j]=0
  • 邻接表(Adjacency List)是图的一种链式存储结构,对图的每个顶点建立一个单链表。每个结点有三个域组成:其中邻接点域(adjvex)指示与顶点v1邻接的点在图中的位置,链域(nextarc)指示下一条边与弧的结点;数据域(info)存储和边或弧相关的信息,如权值等。

  • 十字链表

  • 邻接多重表

最小生成树

n个结点之间需要联通最少需要n-1个结点,最多需要n(n-1)/2个结点,如何构造联通网的最小代价生成树就是最小生成树的问题。其中有普里姆算法和克鲁斯卡尔算法。

Loading Disqus comments...
Table of Contents