spot  1.1.4
sccstack.hh
Go to the documentation of this file.
1 // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
2 // département Systèmes Répartis Coopératifs (SRC), Université Pierre
3 // et Marie Curie.
4 //
5 // This file is part of Spot, a model checking library.
6 //
7 // Spot is free software; you can redistribute it and/or modify it
8 // under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // Spot is distributed in the hope that it will be useful, but WITHOUT
13 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 // License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 
20 #ifndef SPOT_TGBAALGOS_GTEC_SCCSTACK_HH
21 # define SPOT_TGBAALGOS_GTEC_SCCSTACK_HH
22 
23 #include <bdd.h>
24 #include <list>
25 #include <tgba/state.hh>
26 
27 namespace spot
28 {
29  // A stack of Strongly-Connected Components, as needed by the
30  // Tarjan-Couvreur algorithm.
31  class scc_stack
32  {
33  public:
35  {
36  public:
37  connected_component(int index = -1);
38 
40  int index;
43  bdd condition;
44 
45  std::list<const state*> rem;
46  };
47 
49  void push(int index);
50 
53 
55  const connected_component& top() const;
56 
58  void pop();
59 
61  size_t size() const;
62 
64  std::list<const state*>& rem();
65 
69  unsigned clear_rem();
70 
72  bool empty() const;
73 
74  typedef std::list<connected_component> stack_type;
76  };
77 }
78 
79 #endif // SPOT_TGBAALGOS_GTEC_SCCSTACK_HH

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Mon Jul 29 2013 00:27:25 for spot by doxygen 1.8.4