public void dijkstra(Vertice v) {
Heap heap = new Heap();
heap.inserir( v, v, 0);
v.marcado = true;
while (! heap.estahVazio() ) {
Aresta a = heap.remover();
NoLista temp = vertices[a.destino].lista.inicio;
while( temp != null) {
if( !vertices[temp.destino].marcado ) {
vertices[temp.destino].marcado = true;
Aresta aresta = new Aresta(a.destino, temp.destino, temp.custo );
heap.inserir(aresta);
} else {
if ( vertices[temp.destino].menorCaminho > (vertices[a.destino].menorCaminho + temp.custo) ) {
vertices[temp.destino].menorCaminho = (vertices[a.destino].menorCaminho + temp.custo);
Aresta aresta2 = new Aresta(a.destino, temp.destino, temp.custo)
heap.inserir(aresta2);
}
}
temp = temp.prox;
} // fim do while temp
}// fim do heapvazio
Обведите жыр овалом!