#ifndef stack_h #define stack_h #define MAX 50 typedef int TPELEM; class Stack { friend class StackIterador; private: int top; TPELEM elems[MAX]; public: void push( int i ); int pop( void ); int empty( void ); static class Stack* create(void); }; inline void Stack::push(TPELEM i) { elems[top++] = i; } inline TPELEM Stack::pop(void) { return elems[--top]; } inline int Stack::empty( void ) { return top == 0; } class StackIterador { private: int indCorr; class Stack* pPilhaCorr; public: int fim( void ); TPELEM prox( void ); void percorrePilha( void ); void init( class Stack *pPilha ); }; #endif