26 lines
608 B
C++
Executable File
26 lines
608 B
C++
Executable File
#pragma once
|
|
#include <vector>
|
|
#include <queue>
|
|
#include <map>
|
|
#include "EdgeWeightedDigraph.h"
|
|
#include "PriorityQueue.h"
|
|
|
|
class DijkstraSP {
|
|
private:
|
|
std::map<int, DirectedEdge> edgeTo;
|
|
std::vector<double> distToVect;
|
|
Utils::PriorityQueue<int> pq;
|
|
|
|
void relax(EdgeWeightedDigraph G, int v);
|
|
|
|
public:
|
|
DijkstraSP() {
|
|
};
|
|
|
|
DijkstraSP(EdgeWeightedDigraph G, int s);
|
|
|
|
double distTo(int v) const; // Abstände vom Startvertex zu v
|
|
bool hasPathTo(int v) const; // Überprüft die existens eines Pfades
|
|
std::vector<DirectedEdge> pathTo(int v); // Kanten des kürzsesten Weges
|
|
};
|