java查询路线代码,java路径查询

JAVA求10个景点间各个景点的最短路径 图随便话 距离随便 求代码

最有效,切不复杂的方法使用Breadth First Search (BFS). 基本代码如下(伪代码)。因为BFS不用递归,所以可能会有点难理解。

创新互联-专业网站定制、快速模板网站建设、高性价比鄯善网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式鄯善网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖鄯善地区。费用合理售后完善,十余年实体公司更值得信赖。

public Stack findPath(Vertex 起始景点, Vertex 目标景点){

Queue Vertex q = new QueueVertex();

s.enqueue(起始景点);

Vertex 当前位置;

while(!s.isEmpty()){

当前位置 = s.dequeue();

if (当前位置 == 目标景点) break;

for (每一个相邻于 当前位置 的景点 Vertex v){

if (!v.visited){

v.parent = 当前位置;

// 不是规定,不过可以节省一点时间

if (v == 目标景点){

current = v;

break;

}

s.enqueue(Vertex v);

v.visited = true;

}

}

}

Stack Vertex solution = new Stack Vertex();

Vertex parent = current;

while (parent != 起始景点){

solution.push(parent);

parent = current.parent;

}

for (graph中的每一个vertex) vertex.visited = false;

return solution(); // 其实这里建议用一个 Path 的inner class 来装所获得的路线

}

然后再 main 求每两个景点之间的距离即可

public static void main(String[] argv){

PathFinder pf = new PathFinder();

Stack[][] 路径 = new Stack[10][10];

for(int i=0; ipf.vertices.length; i++){

for(int j=i+1; jpf.vertices.length; j++){

Stack s = pf.findPath(pf.vertices[i], pf.vertices[j]);

路径[i][j] = s; 路径[j][i] = s; // 假设你的graph是一个undirected graph

}

}

// 这么一来就大功告成了!对于每两个景点n 与 m之间的最短路径就是在 stack[n][m] 中

}

还有一种方法就是用Depth First Search递归式的寻找路径,不过这样比较慢,而且我的代码可能会造成stack overflow

public Stack dfs(Vertex 当前景点,Vertex 目标景点){

if(当前景点 == 目标景点) return;

Stack solution = new Stack();

Stack temp;

for (相邻于 点钱景点 的每一个 Vertex v){

if (!v.visited){

v.visited = true;

temp = dfs(v, 目标景点);

// 抱歉,不记得是stack.size()还是stack.length()

if (solution.size() == 0) solution = temp;

else if(temp.size() solution.size()) solution = temp;

v.visited = false; 复原

}

}

return solution;

}

然后再在上述的Main中叫dfs...

参考:

java用节点存进一条公交线路,输入任意两个站点输出路线

//写了两个小时啊,兄弟,要采纳我啊

//Site(站点类)

package transit;

import java.util.ArrayList;

import java.util.List;

public class Site

{

private Integer id; // 给每个站点分配一个ID

private String name; // 站点的名字

private ListRoute list; // 经过该站点的线路

public Site()

{

super();

}

public Site(Integer id, String name)

{

super();

this.id = id;

this.name = name;

this.list = new ArrayListRoute();

}

public Integer getId()

{

return id;

}

public void setId(Integer id)

{

this.id = id;

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

public ListRoute getList()

{

return list;

}

public void setList(ListRoute list)

{

this.list = list;

}

// 添加线路

public boolean addRoute(Route route)

{

return this.getList().add(route);

}

// 删除线路

public boolean removeRoute(Route route)

{

return this.getList().remove(route);

}

@Override

public String toString()

{

return name;

}

@Override

public boolean equals(Object obj)

{

if (obj instanceof Site)

{

Site s = (Site) obj;

return this.id == s.getId()  this.name.equals(s.getName());

}

return false;

}

}

JAVA中怎么实现查询 代码

try{Connection con;

Statement stmt;

ResultSet rs;

int temp;

Class.forName("com.mysql.jdbc.Driver");

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/java","root","");//以上是数据库连接,不同的数据管理器有 //不同的驱动和链接方式,以上是mysql的连接

stmt=con.createStatement();

rs=stmt.executeQuery("select * from student");//执行查询语句,结果赋值给结果集rs

//结果集是结果于字段编号的映射,每一个字

//段都有一个编号,最小为1,也就是第一个字段

while(rs.next()){

String names=rs.getString("name");//查询结果转换成字符串。

System.out.println(names);

}rs.close();

}catch(Exception e){

e.printStackTrace();

}


文章名称:java查询路线代码,java路径查询
URL地址:http://scyanting.com/article/dsipeis.html