《算法》笔记 10
表示无向图的数据结构 邻接表数组 深度优先搜索 深度优先搜索寻找路径 深度优先搜索的性能特点 广度优先搜索 两种搜索方式的对比 图表示由相连的结点所表示的抽象模型,这个模型可以用来研究类似“能否从某个点到达指定的另一个点”、“有多少个结点和指定的结点相连”、“两个结点之间最短的连接是哪一条”。图的算法与很多实际问题相关。比如地图、搜索引擎、电路、任务调度、商业交易、计算机网络、社交网络等。 无向图是一种最简单、最基本的图模型,仅仅由一组顶点和一组能够将两个顶点相连的边组成。 在图的实现中,用从0开始的整数值来表示图的结点,用类似8-5来表示连接结点8和5的边,在无向图中,这与5-8表示的是同一条边。4-6-3-9表示的是4到9之间的一条路径。 表示无向图的数据结构 无向图的API public class Graph{ Graph(int V) //创建一个含有V个顶点但不含有边的图 Graph(In in) //从标准输入流in读入一幅图 int v() //顶点数 int E() //边数 void addEdge(int v, int w) //向图中添加一条边v-w Iterable<Integer>adj(intv) //和相邻的所有顶点 String toString() //对象的字符串表示 } 第二个构造函数接受的输入由2*E+2个整数组成,前两行分别是V和E