具有邻接表无向图的Dijkstra算法

时间:2015-05-14 19:05:15

标签: c++ dijkstra

我正在尝试编写一种方法,使用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);

1 个答案:

答案 0 :(得分:0)

更新距离后,你的矢量不再是一个堆。此外,调用sort_heap本身也会丢弃堆属性,而不是修复它。 (见http://en.cppreference.com/w/cpp/algorithm/sort_heap) 请改为呼叫make_heap

还要注意内存泄漏:你永远不会释放为Vertex3个对象分配的内存。