Exemplo n.º 1
0
        protected override void visit(EdgeWeightedGraph graph, int v)
        {
            marked[v] = true;

            foreach (Edge edge in graph.Adj(v))
            {
                int w = edge.Other(v);

                if (marked[w]) continue;
                if (edge.Weight < diestTo[w])
                {
                    edgeTo[w] = edge;
                    diestTo[w] = edge.Weight;

                    if (pq.Contains(w))
                    {
                        pq.Change(w, diestTo[w]);
                    }
                    else
                    {
                        pq.Insert(w, diestTo[w]);
                    }
                }
            }
        }
Exemplo n.º 2
0
        protected override void visit(EdgeWeightedGraph graph, int v)
        {
            marked[v] = true;

            foreach (Edge edge in graph.Adj(v))
            {
                if (!marked[edge.Other(v)]) pq.insert(edge);
            }
        }