在计算机应用中,我们把一系列相连接的节点组成的数据结构,叫做图。今天我们将要介绍它的一种形式——无向图,以及针对这种结构的深度优先搜索和路径查找算法。
一、无向图数据结构
接口:
/** * 图论接口 */ public interface Graph { /** * 顶点数 * * @return */ int vertexNum(); /** * 边数 * * @return */ int edgeNum(); /** * 向图中添加一条v-w的边 * * @param v * @param w */ void addEdge(int v, int w); /** * 和v相邻的所有顶点 * * @param v * @return */ Iterable<Integer> adjoin(int v); /** * v的维度 * * @param v * @return */ int degree(int v); }