我正在尝试编写一种方法,使用Dijkstra算法找到从一个顶点到另一个顶点的最短路径长度。但它没有给出正确的输出。你能就问题出在哪里提出一些建议吗?
for (int k = 0; k < 4; k++)
{
for (int j = 0; j < 4; j++)
{
Button btn = new Button();
{
btn.Name = "Btn" + i.ToString();
btn.Height = 100;
btn.Width = 100;
btn.Content = "0";
btn.Margin = new Thickness(y, x, 0, 0);
btn.Visibility = Visibility.Visible;
}
btns[i] = btn;
stkpanel.Children.Add(btn);
i++;
}
x -= 700;
y += 200;
}
ContentPanel.Children.Add(stkpanel);
答案 0 :(得分:0)
更新距离后,你的矢量不再是一个堆。此外,调用sort_heap
本身也会丢弃堆属性,而不是修复它。 (见http://en.cppreference.com/w/cpp/algorithm/sort_heap)
请改为呼叫make_heap
。
还要注意内存泄漏:你永远不会释放为Vertex3
个对象分配的内存。