// Pilha.cpp
// Definição das classes :
//		 cElemLista  ( representa um elemento da lista )
//		 cPilha      ( representa uma Pilha )

// Aula do dia 6 de Dezembro de 2001

#include "Pilha.h"


cPilha::cElemLista::cElemLista( )
{
	Proximo = 0;
}


// IMPLEMENTAÇÃO dos métodos da classe cPilha

cPilha::cPilha()
{
	Head = 0;
}

cPilha::~cPilha()
{
	cElemLista *p, *pNext;

	for ( p=Head; p ;  )
	{
		pNext = p->Proximo;
		delete p;
		p = pNext;
	}
}


// Inserção no início
bool cPilha::Inserir( char caract )
{
	cElemLista *pNovo;
	
	pNovo = new cElemLista();

	pNovo->c = caract;
	pNovo->Proximo = Head;

	Head = pNovo;

	return true;
}

// Remoção no início
bool cPilha::Remover( char &caract )
{
	cElemLista *pRemover;

	if ( Head == 0 ) return false;
	
	pRemover = Head;

	Head = Head->Proximo ;

	caract = pRemover->c ;

	delete pRemover;

	return true;
}


