数据结构-图

学习路径如下:

  1. 图的基本定义本文学习内容
  2. 顶点/边/图的关系
  3. 图的存储结构
  4. 深度/广度优先遍历
  5. 最小生成树

完整工程:zjZSTU/graph_algorithm

什么是图

图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(VE),其中,G表示一个图,V是图G中顶点(vertex)的集合,E是图G中边(edge)的集合

注意:图可以没有边,不能没有顶点

  • 子图

假设有两个图G(V,E)G(V,E),如果VVEE, 则称GG的子图(subgraph

简单图

图中不存在顶点到自身的边,且同一条边不重复出现,称这样的图为简单图

之后的讨论都是基于简单图进行的

权重/网

  • 权重(weight

与边相关的数称为权重(weight

带权重的图通常称为网(network

有向图/无向图

  • 无向边(undirected edge

若顶点xy之间的边没有方向,则称该边为无向边,用无序偶对(x,y)表示。(x,y)(y,x)意义相同,仅表示xy之间有连接

  • 有向边(directed edge

若顶点uv之间的边有方向,则称该边为有向边(也称为弧Arc),用有序偶对<u,v>表示,表示从u指向v。称u为该边的起点(origin)或尾顶点/弧尾(tail),称v为该边的终点(destination)或头顶点/弧头(head

  • 无向图

图中任意两个顶点之间的边都是无向边,称该图为无向图(undirected graph

  • 有向图

图中任意两个顶点之间的边都是有向边的图称为有向图(directed graph

  • 混合图

包含无向边和有向边的图称为混合图(mixed graph

注意:无向边用小括号()表示,有向边用尖括号<>表示

稀疏图/稠密图/完全图

  • 稀疏图(sparse graph

顶点很少互相连接的图

  • 稠密图(dense graph

顶点几乎都能两两连接的图

  • 完全图(complete graph

每个顶点均与除自身之外的其他顶点连接的图

  • 无向完全图

在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图

含有n个顶点的无向完全图有n×(n1)2条边

  • 有向完全图

在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图

含有n个顶点的有向完全图有n×(n1)条边

相关阅读