概念&性质&实现

一个图是一个二元组G=(V,E),其中:

  • V是顶点集合,E是边集合, E ⊆ V × V
  • 有向图的边有方向,是顶点的有序对,无向图边无方向。(之后的 有向边 表示为尖括号,< vi,vj > 表示vi到vj的边,无向边用圆括号表示)
  • < vi,vj > ∈ E,vj为vi的邻接点(无向图的邻接点是双向的),不考虑顶点到自身的边,无重复的边。
  • 完全图:任意两顶点之间都有边(有向图n×(n-1),无向图n×(n-1)/2)|E|≦|V|2,即|E|=O(|V|2)
  • 度:一个顶点邻接边的条数,有向图有入度和出度,边数等于所有顶点度数和的一半(有向图要同时算入度和出度)
  • 路径:沿着边(有向图边有方向)从一顶点vi到另一顶点vj的通路称为vi到vj的一条路径,长度为边的条数,环路指起点终点相同,若环路除了起点终点外都不同则称为简单回路简单路径
  • 有根图:图里的某一顶点到任意其他顶点都有路径,则该图为有根图,该顶点称为根
ADT Graph 一个图的抽象数据类型
Graph(self) 图构造操作,创建一个新图
is_empty(self)