#include #include #include #include "NodeTree.h" #include "util.h" #ifndef GRAPH_STRUCTURED_STACK #define GRAPH_STRUCTURED_STACK class GraphStructuredStack { public: GraphStructuredStack(); ~GraphStructuredStack(); NodeTree* newNode(int stateNum); void addToFrontier(int frontier, NodeTree* node); NodeTree* inFrontier(int frontier, int state); bool frontierIsEmpty(int frontier); bool frontierHasAccState(int frontier); std::vector*>* getReachable(NodeTree* start, int lenght); bool hasEdge(NodeTree* start, NodeTree* end); void addEdge(NodeTree* start, NodeTree* end); std::string toString(); private: std::vector*>*> gss; }; #endif