#pragma once #include #include #include "EdgeWeightedGraph.h" class PrimMST { private: std::vector marked; // MST-Knoten std::vector mst; // MST-Kanten /* * PriorityQueue die alle Kanten speichert und mit pq.top() * die Kante mit dem kleinsten Gewicht zurueck gibt. */ std::priority_queue, std::greater > pq; public: PrimMST() { } PrimMST(EdgeWeightedGraph G, int s); void visit(EdgeWeightedGraph G, int v); std::vector edges() const; double weight() const; };