00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef adevs_lp_graph_h
00021 #define adevs_lp_graph_h
00022 #include <vector>
00023 #include <map>
00024
00025 namespace adevs
00026 {
00027
00035 class LpGraph
00036 {
00037 public:
00039 LpGraph():nodes(0){}
00041 void addEdge(int A, int B)
00042 {
00043 if (E.find(A) == E.end()
00044 && I.find(A) == I.end())
00045 nodes++;
00046 if (E.find(B) == E.end()
00047 && I.find(B) == I.end())
00048 nodes++;
00049 E[A].push_back(B);
00050 I[B].push_back(A);
00051 }
00053 int getLPCount() const { return nodes; }
00055 const std::vector<int>& getI(int B) { return I[B]; }
00057 const std::vector<int>& getE(int A) { return E[A]; }
00059 ~LpGraph(){}
00060 private:
00061
00062 int nodes;
00063
00064 std::map<int,std::vector<int> > E;
00065
00066 std::map<int,std::vector<int> > I;
00067 };
00068
00069 }
00070
00071 #endif