欧拉路

  

欧拉路和欧拉回路的概念

  欧拉路: 从图中某个点出发遍历整个图,图中的每条边通过且只通过一次。
  欧拉回路: 起点和终点相同的欧拉路。
  度数: 一个点上连接的边的数量称为这个点的度数。在无向图中,如果度数是奇数则这个点称为奇点,否则则称为偶点。在有向图中有出度入度

欧拉路和欧拉回路是否存在

  • 首先图应该是连通图。而图的连通性用DFS或并查集来判断
  1. 无向连通图的判断条件:

    • 存在欧拉回路: 图中的点全都是偶点。
    • 存在欧拉路: 图中只有两个奇点,其中一个奇点是起点,另一个是终点。
    • 不可能出现有奇数个奇点的无向图。
  2. 有向连通图的判断条件: 把一个点上的出度记为1,入度记为-1,这个点上所有的出度和入度相加就是他的度数。

    • 存在欧拉回路: 当且仅当该图所有的点的度数为0。
    • 存在欧拉路: 只有一个度数为1和点、一个度数为-1的点,其他所有点的度数为0。

输出欧拉回路

  用DFS输出欧拉回路:UVA10054 The Necklace——欧拉回路(DFS)
  用非递归DFS输出欧拉回路:POJ 1780 Code
               HDU 4850 Wow! Such String!

混合图欧拉路问题

  有的图不是单纯的有向图或无向图,而是二者的混合,同时存在有向边和无向边。这是一个比较困难的问题,徐娅用最大流求解。

你可能感兴趣的:(#,欧拉路)