Path: blob/devel/ElmerGUI/netgen/libsrc/general/stack.icc
3206 views
/*****************************************************************************/ /* File: stack.hh */ /* Author: Wolfram Muehlhuber */ /* Date: September 98 */ /*****************************************************************************/ /* Stack class, based on a resizable array */ template <class T> inline STACK<T> :: STACK (INDEX asize, INDEX ainc) : elems(asize, ainc) { size = 0; } template <class T> inline STACK<T> :: ~STACK () { ; } template <class T> inline void STACK<T> :: Push (const T & el) { if (size < elems.Size()) elems.Elem(++size) = el; else { elems.Append(el); size++; } } template <class T> inline T & STACK<T> :: Pop () { return elems.Elem(size--); } template <class T> const inline T & STACK<T> :: Top () const { return elems.Get(size); } template <class T> inline int STACK<T> :: IsEmpty () const { return (size == 0); } template <class T> inline void STACK<T> :: MakeEmpty () { size = 0; }