#ifndef SHORTESTPATH_H_
#define SHORTESTPATH_H_

#include <set>
#include <map>
#include <list>
#include "networks/graph/RealWeightedGraph.h"

namespace cosi {

namespace algorithms {

namespace graph {

class ShortestPath {
public:
	ShortestPath(cosi::commstruct::graph::RealWeightedGraph* pN);
	virtual ~ShortestPath();
	void Run(int Src, int Dest);
	std::list<Vertex> Get();
private:
	cosi::commstruct::graph::RealWeightedGraph* mN;
	int mSrc;
	int mDest;
	//predecessor tree
	std::map< int , int > mPi;

};

}

}

}

#endif /*SHORTESTPATH_H_*/
