38 namespace Gecode {
namespace Support {
45 template<
class T,
class A>
65 bool empty(
void)
const;
76 void push(
const T&
x);
95 static void*
operator new(
size_t s)
throw() { (void) s;
return NULL; }
97 static void operator delete(
void*
p) { (void)
p; };
105 template<
class T,
class A>
108 int nl = (limit * 3) / 2;
109 stack =
a.template realloc<T>(stack,limit,nl);
113 template<
class T,
class A>
116 :
a(a0), limit(n), tos(0), stack(
a.template alloc<T>(n)) {}
118 template<
class T,
class A>
124 template<
class T,
class A>
130 template<
class T,
class A>
136 template<
class T,
class A>
142 template<
class T,
class A>
150 template<
class T,
class A>
156 template<
class T,
class A>
162 template<
class T,
class A>
168 template<
class T,
class A>
T & operator[](int i)
Return entry at position i.
T & top(void) const
Return element on top of stack.
int p
Number of positive literals for node type.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
T pop(void)
Pop topmost element from stack and return it.
bool empty(void) const
Test whether stack is empty.
~DynamicStack(void)
Release memory.
Node * x
Pointer to corresponding Boolean expression node.
Stack with arbitrary number of elements.
int entries(void) const
Return number of entries currently on stack.
Gecode toplevel namespace
T & last(void) const
Return element that has just been popped.
DynamicStack(A &a, int n=64)
Initialize stack with n elements.
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.
void push(const T &x)
Push element x on top of stack.