- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我的类 Dijkstra 示例代码:
public class Dijkstra {
public static int[] GetPath(IGraph graph,int start,int end){
int[] dist=new int[graph.size()+1];
Stack<Integer> Path =new Stack<Integer>();
int[] previous=new int[graph.size()+1];
boolean[] visited=new boolean[graph.size()+1];
HashSet<Integer> Q=new HashSet<Integer>();
int i,u = 0,min;
for (i=0;i<graph.size();i++){
dist[i]=10000;
visited[i]=false;
previous[i]=-1;
}
dist[start]=0;
Q.add(start);
while(!Q.isEmpty()){
min=1000;
for(i=0;i<graph.size();i++){
if(dist[i]<min&&visited[i]==false){
min=dist[i];
u=i;
}
}
Q.remove(u);
visited[u]=true;
//Process all the outbound vertexes of the current vertex;
int[] outb=graph.IterateOutbound(u);
if(outb!=null){
for (int v=0;v<outb.length-1;v++){
int alt=dist[u]+graph.retrieveCost(u, outb[v]);
if(alt<dist[outb[v]]&&!visited[outb[v]]){
dist[outb[v]]=alt;
previous[outb[v]]=u;
Q.add(outb[v]);
}
}
}
}
return previous;
}
}
我不知道如何使用“前一个” vector (其中保存了算法访问的每个顶点,直到它成功,但不是成本最低的那个)返回正确的路径 -成本较低的那个。当我用谷歌搜索时,我发现我需要另一个函数(使用“前一个” vector )来计算路径。或者有人有其他想法? '
附加信息:Graph 是一个具有属性的类 - innies,outies,cost .. IterateOutbound 是一个函数,返回一个顶点的出站顶点列表我从文件中读取信息
最佳答案
是的,您基本上需要多几行代码(您可以将其放入函数中)来计算到顶点的路径。
类似于:(伪代码)
Stack getPath(int[] previous, int start, int end)
int current = end
Stack path
path.push(current)
while (current != start)
current = previous[current]
path.push(current)
return path
此算法的高级描述相当简单:
为什么是堆栈
?因为我们从路径的末尾压入元素,所以我们压入的最后一个元素是开始,如果使用 Stack
,这将是我们弹出的第一个元素。
关于java - Dijkstra - 定位上一个 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21024296/
我必须从我的网站中删除()一些iem,然后将它们追加()回来,但是当我追加它们时,它们出现在不同的地方,而我希望它们完全显示在它们以前的同一个地方是。 有什么解决办法吗? 这是一个沙箱,请随意更新(注
一个。图片 (960x7)b. div(宽度:960,填充:10) 我想定位 (a),使其距顶部 50 像素,居中。我想将 (b) 放置在 (a) 的正下方,没有空格。 我的 CSS 如下: @cha
放置某物的正确方法是什么?我有一个在中心显示博客文章的 div。 "" rel="bookmark"> BY LOUIS MOORE ON " pubdate>
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭1
我已经成功地使用了 position:fixed 设置 CSS/CSS3 并且工作得很好! 我几天前看到了这个,想知道他们是如何实现向下滚动时发生的效果的,菜单栏在滚动前处于一个位置,然后转到顶部并自
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improv
接口定义 能够对于文字、段落乃至任何元素的精准定位 并做出增删改查,都是在开发一款富文本编辑器时一项最基本也是最重要的功能之一。让我们先来看看Slate中对于如何在文档树中定位元素是怎么定义的
例如,使用 WPF 在选项卡控件的最左上角定位三个 tabitem 和在最右上角定位一个 tabitem 的正确方法是什么? 我尝试通过更改边距将第四个 tabitem 向右移动,但这并没有产生好的结
我正在尝试使用 Javascript 创建一个跟随鼠标在页面上移动的东西。我希望它是米老鼠,我希望他的眼睛跟随鼠标移动他的眼球...这是我到目前为止的代码(从网络上的各个地方收集,因此归功于编写该部分
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 9 年前。 Improve
我试图将两个按钮放置在左上角。但它们始终位于顶部中心。 我已经尝试过这个: jp = new JPanel(); jp.setLayout(new GridBagLayout()); GridBagC
我在使用 JQuery 向下滑动功能时遇到问题。我可以让它正常工作,但是我向下滑动的元素的位置会根据视口(viewport)的大小而变化。我想做的是将它与它滑动的元素联系起来。 This JSfidd
我正在尝试创建一个棋盘,并将其放置在屏幕中间,但到目前为止我无法将它直接放在中间。我不想将位置硬编码到屏幕上,因为我要处理不同的屏幕尺寸。 var winsize = cc.director.
我正在尝试从 mysql 中的 2 个字符串点之间提取数据,我的示例脚本是 'otherdata&p1=textneeded&otherdata' 我需要拉出“textneeded”位,“P1=”是起
如何在 JavaFX 中设置按钮的位置?我的代码: bZero = new Button(); bZero.setPrefSize(45, 20); mainPane.getChildren().ad
我有一个 iPhone 应用程序,我可以在其中显示一系列图像。当用户点击图像时,我需要将该图像带到第一个位置,表明它是所选图像。我可以通过子类化实现 uiscrollview 中的点击。但是我无法将
在下图中,它显示了一个image、textbox 和一个css menu image 我的 CSS 菜单非常完美。我终于按照我需要的方式得到了它。我的问题是我需要导航栏中央的文本框,然后我需要我的图像
我必须创建一个看起来像这样的 div id为2的div应该出现在图片的右下角,图片的大小不固定id=2的div应该应用什么css id =1 的 div 没有定义位置,所以使用默认值,图像也是
如何将我的文本和图像对齐在同一行? 每当我使用 padding 或 margins 时,它就会崩溃到我正在使用的圆形图像中。 #alignPhoto { padding-right: 50px;
简单的问题,如何定位具有整个页面引用的元素? 在我的例子中,我在标题中得到了一个 float 图像,然后是 2 组标题。当我使用时: text-align: center; 它使用图像宽度端和页面其余
我是一名优秀的程序员,十分优秀!