///******************************************************************* //* //* Projeto: POO em Java //* //* Modulo: PilhaImpl.java //* //* Objetivo: Implementa interface para o TAD Pilha. //* //* Classes & Funcoes Exportadas: PilhaImpl //* //* Versao Original: 1.0 Data: agosto 2001 //* //* Autor: Ismael H F Santos //* //* Email: ismael@tecgraf.puc-rio.br //* //******************************************************************** //* //* Historico de Alteracoes: //* //* DATA AUTOR COMENTARIO //* ---- ----- ---------- //* xx/yy/00 .... .... //* //*******************************************************************/ public final class PilhaImpl implements PilhaInterf { private int _qtdObj, _maxCapacity, _incrCapacity; private Object[] _vet; PilhaImpl( int initialCapacity, int incrCapacity ) { _vet = new Object[initialCapacity]; _qtdObj = 0; _maxCapacity = initialCapacity; _incrCapacity = incrCapacity; } private void redim() { Object[] tmpVet = new Object[_maxCapacity + _incrCapacity ]; for( int i = 0; i < _qtdObj; tmpVet[i] = _vet[i], i++ ); _vet = tmpVet; _maxCapacity += _incrCapacity; } public boolean isEmpty() { return _qtdObj == 0; } public boolean isFull() { return _qtdObj == _maxCapacity; } public void push( Object obj ) { if( isFull( ) ) redim(); _vet[_qtdObj++] = obj; } public Object pop( ) { if( isEmpty( ) ) return null; Object temp = _vet[_qtdObj - 1]; _vet[--_qtdObj] = null; return temp; } public Object top( ) { return _vet[_qtdObj - 1]; } }