标签:style blog color sp for 数据 div log 代码
数据结构之图应用最小生成树
最小生成树说白了就是用最少的边把所有的顶点连接起来。最小生成树是不唯一的,但是最小生成树满足边的数量比点的数量少1.最小生成树不关心边的长度也不需要找到最短的路径,而是要找到最少数量的边,创建最小生成树的算法与图的搜索算法几乎相同。下边的例子是基于深度优先搜索算法实现的,在执行深度搜索的时候记录走过的边,就可以创建一个最小的生成树。
代码:
//最小生成树的算法 public void mst() { //从0开始 vertexs[0].wasVisited = true; //把这个点压入栈中 myStack.push(0); while(!myStack.isEmpty()) { int v1 = myStack.peek(); int v = getAdjUnvisitedVertex(v1); if(v == -1) { myStack.pop(); }else{ vertexs[v].wasVisited = true; myStack.push(v); displayVertex(v1); displayVertex(v); System.out.print(" "); } } //如果栈已经为空就结束 for(int i = 0;i<currentVertexs;i++) { vertexs[i].wasVisited = false; } }
最小生成树比较容易从深度优先搜索得到,这是因为DFS访问所有的点只访问了一次,因此DFS走过的路径必定是最小生成树。
标签:style blog color sp for 数据 div log 代码
原文地址:http://www.cnblogs.com/aicpcode/p/4171845.html