赞
踩
利用广度优先的搜索方法写了一个最短路径的例子,自我感觉还可以优化,因为最后显示的结果不是很人性化
节点类Vertex、边类Edge、图类Graph前几篇已经写了,这里作相应的修改,在节点Vertex类中添加路径长度pathLength变量和上一个节点的名称path变量,初始pathLength为0,path为null.
利用这种方法可以计算出从某节点为起点的到达所有节点的最短路径,其中pathLength表示了路径长度,而path则可以一层层找到该路径。
下面贴上代码和结果:
- /*
- * 无权最短路径算法,利用广度优先搜索方法
- */
-
- package com.Algorithm.ShortestPath;
-
- import java.util.ArrayList;
- import java.util.LinkedList;
- import java.util.Scanner;
-
- public class ShortestPathTest {
-
- Graph g ;
-
- //构造函数
- public ShortestPathTest()
- {
- g = new Graph();
- g.buildGraph();
- }
-
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
-
- ShortestPathTest s = new ShortestPathTest();
- System.out.println("输入路径的起点:");
- Scanner input = new Scanner(System.in);
- String first = input.next();
- input.next();
- s.shortest
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。