Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SPOT_TGBAALGOS_GTEC_SCCSTACK_HH
00023 # define SPOT_TGBAALGOS_GTEC_SCCSTACK_HH
00024
00025 #include <bdd.h>
00026 #include <list>
00027 #include <tgba/state.hh>
00028
00029 namespace spot
00030 {
00031
00032
00033 class scc_stack
00034 {
00035 public:
00036 struct connected_component
00037 {
00038 public:
00039 connected_component(int index = -1);
00040
00042 int index;
00045 bdd condition;
00046
00047 std::list<const state*> rem;
00048 };
00049
00051 void push(int index);
00052
00054 connected_component& top();
00055
00057 const connected_component& top() const;
00058
00060 void pop();
00061
00063 size_t size() const;
00064
00066 std::list<const state*>& rem();
00067
00071 unsigned clear_rem();
00072
00074 bool empty() const;
00075
00076 typedef std::list<connected_component> stack_type;
00077 stack_type s;
00078 };
00079 }
00080
00081 #endif // SPOT_TGBAALGOS_GTEC_SCCSTACK_HH