5 * Created on August 8, 2017, 6:36 PM
8 #ifndef ORDERGRAPHBUILDER_H
9 #define ORDERGRAPHBUILDER_H
10 #include "classlist.h"
14 enum NodeStatus {NOTVISITED, VISITED, FINISHED};
15 typedef enum NodeStatus NodeStatus;
22 NodeInfo* allocNodeInfo();
23 void deleteNodeInfo(NodeInfo* info);
25 OrderGraph* buildOrderGraph(Order *order);
26 void computeStronglyConnectedComponentGraph(OrderGraph* graph);
27 void orderAnalysis(CSolver* solver);
28 void initializeNodeInfoSCC(OrderGraph* graph, HashTableNodeInfo* nodeToInfo);
29 void DFSNodeVisit(OrderNode* node, VectorOrderNode* finishNodes, HashTableNodeInfo* nodeToInfo, uint* timer, bool isReverse);
30 void DFS(OrderGraph* graph, VectorOrderNode* finishNodes, HashTableNodeInfo* nodeToInfo);
31 void DFSReverse(OrderGraph* graph, VectorOrderNode* finishNodes, HashTableNodeInfo* nodeToInfo);
33 #endif /* ORDERGRAPHBUILDER_H */