数据结构--图的最短路径.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构--图的最短路径

数据库系统 实验报告                                               第PAGE 3 页/ 共NUMPAGES3页 第PAGE1 页/ 共NUMPAGES3页 江 西 理 工 大 学 数据结构实验报告实验名称 图的最短路径问题日期 2014-12-8专业班级计算机(中加)131班地点信息学院621实验人 王鹏伟学号 1520133713同组人单独完成实验目的 按照老师要求实现对图最短路径的求解问题; 掌握Dijkstras算法。 实验要求 1、对一个给定的图,求出其中一点到各点的最短路径 三、实验内容 1、利用书本14.3.1 theory:Dijkstras algorithm以及上课老师PPT所讲的知识解决问题,并输出结果。 四、实验过程和结果 部分实验代码: public void computePath(Node start){ Node nearest=getShortestPath(start);//取距离start节点最近的子节点,放入close if(nearest==null){ return; } close.add(nearest); open.remove(nearest); MapNode,Integer childs=nearest.getChild(); for(Node child:childs.keySet()){ if(open.contains(child)){//如果子节点在open中 Integer newCompute=path.get(nearest.getName())+childs.get(child); if(path.get(child.getName())newCompute){//之前设置的距离大于新计算出来的距离 path.put(child.getName(), newCompute); pathInfo.put(child.getName(), pathInfo.get(nearest.getName())+-+child.getName()); } } } computePath(start);//重复执行自己,确保所有子节点被遍历 computePath(nearest);//向外一层层递归,直至所有顶点被遍历 } public void printPathInfo(){ SetMap.EntryString, String pathInfos=pathInfo.entrySet(); for(Map.EntryString, String pathInfo:pathInfos){ System.out.println(pathInfo.getKey()+:+pathInfo.getValue()); } } /** * 获取与node最近的子节点 */ private Node getShortestPath(Node node){ Node res=null; int minDis=Integer.MAX_VALUE; MapNode,Integer childs=node.getChild(); for(Node child:childs.keySet()){ if(open.contains(child)){ int distance=childs.get(child); if(distanceminDis){ minDis=distance; res=child;

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档