小编Mic*_*l.Z的帖子

我的dijkstra算法在perl中具有相等权重的非定向图有什么问题.它不会停止迭代

我有蛋白质节点的加权图.我正在编写一个Perl程序,使用Dijkstra算法找到给定节点的最短路径.每种蛋白质(顶点)具有相同的重量.我的程序不会停止迭代,也不会给我任何输出.我不知道造成这个问题的原因.

我的想法是从用户那里获取蛋白质节点的名称,并通过使用给定的蛋白质作为根节点开始搜索最短路径.

%graph = (
  'A' => {'B' => 1, 'C' => 5},
  'B' => {'C' => 4, 'D' => 2},
  'C' => {'A' => 1, 'B' => 3},
  'D' => {'C' => 2, 'B' => 3}
);

sub dijkstra {
    print "Enter a node\n";
    my $root= <>;
    my $infinity = "inf";
    my %graph= %graph;
    my %dist;
    my %prev;
    ############################ the algorithm ####
    # first, set all distances to infinity
    foreach $n (keys %graph) { $dist{$n} = $infinity; $prev{$n}=$n; } …
Run Code Online (Sandbox Code Playgroud)

arrays perl hash graph dijkstra

1
推荐指数
1
解决办法
726
查看次数

标签 统计

arrays ×1

dijkstra ×1

graph ×1

hash ×1

perl ×1