EdgeWeightedDigraph.h
#pragma once
#include <memory>
#include <fstream>
#include <stdexcept>
template <typename T>
class QSP;
template<typename T>
class EdgeWeightedDigraph
{
private:
class AdjacentcyList
{
public:
class DiEdge
{
public:
std::shared_ptr<DiEdge> next;
int v;
int w;
T weight;
public:
DiEdge(const int& s,const int& e,const T& t):v(s),w(e),weight(t),next(nullptr)
{
}
DiEdge() = default;
int from()
{
return v;
}
int to()
{
return w;
}
T Weight()
{
return weight;
}
};
std::shared_ptr<DiEdge> head;
class Iterator
{
private:
std::shared_ptr<DiEdge> it;
public:
Iterator(std::shared_ptr<DiEdge> i) :it(i)
{
}
bool operator == (const Iterator& rhs)const
{
return it == rhs.it;
}
bool operator != (const Iterator& rhs)const
{

最低0.47元/天 解锁文章
3060

被折叠的 条评论
为什么被折叠?



