图算法
一.无向图 1.邻接表数据结构 1) 图中顶点用一个一维数组存储,当然也可以用单链表来存储,不过用数组可以较容易的读取顶点信息,更加方便。另外,对于顶点数组中,每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该顶点的边信息。 2) 图中每个顶点vi的所有邻接点构成一个线性表,由于邻接点的个数不定,所以用单链表存储,无向图称为顶点vi的边表,有向图则称为以vi为弧尾的出边表。 package sort; import edu.princeton.cs.algs4.Bag; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; import java.util.NoSuchElementException; import java.util.Stack; public class Graph { private static final String NEWLINE = System.getProperty("line.separator"); private final int V; private int E; private Bag<Integer>[] adj; //创建一个含有V个顶点但不含有边的图 public Graph(int V) { if (V < 0) throw