Вы находитесь на странице: 1из 6

// Copyright 2014 Mateus Rissi & Guilherme Noronha.

All rights reserved


#ifndef PILHA_H_
#define PILHA_H_
#include "ErroPilhaCheia.hpp"
#include "ErroPilhaVazia.hpp"
/* Classe Pilha.hpp
O conceito implementado pela pilha o de Last-in,
First-out ou ltimo a entrar, Primeiro a sair.
FUNES:
Pilha();
Mtodo construtor. Contm todas as instrucoes que sempre serao executadas
quando for instanciado um objeto desta classe.

Zero elementos;
Tamanho "padro".

Pilha(int t);
Mtodo construtor. Contm todas as instrucoes que sempre serao executadas
quando for instanciado um objeto desta classe.

Zero elementos;
Busca o tamanho que vai ser utilizado para a pilha.

Empilha(T dado);
Mtodo que insere um elemento (recebido como parmetro) no topo da pilha.

Desempilha();

Mtodo que retorna e remove o elemento que est no topo da pilha, ou seja,
o ltimo elemento inserido.

Topo();
Mtodo que retorna o elemento que est no topo da Pilha.

getPosTop();
Mtodo que retorna(em inteiro) a posio em que se encontra o ultimo
elemento inserido,
ou seja, o topo.

limparPilha();
Mtodo que transforma em nulo todos os elementos da pilha e "reseta" a
posTopo(posTopo = -1) para limpar a pilha.

PilhaVazia();
Mtodo que retorna um boolean para verificar se a pilha est vazia ou no.
TRUE se estiver vazia e FALSE se a pilha possuir algum elemento.

PilhaCheia();
Mtodo que retorna um boolean para verificar se a pilha est cheia ou no.
TRUE se estiver cheia e FALSE se a pilha no estiver com o nmero mximo de
elementos.

DADOS DOS MEMBROS:

dados
Responsvel por conter os dados da pilha e disponibiliz-los para edio.

posTopo
Responsvel por indicar o local onde est localizado o
primeiro elemento da pilha.

maxTam
Responsvel por indicar o tamanho mximo da pilha.
*/

template<typename T>
class Pilha {
private:
T* dados = new T[1000];
int posTopo;
int maxTam;

public:
/*

Pilha()
Mtodo construtor. Contm todas as instrucoes que sempre serao executadas
quando for instanciado um objeto desta classe.

Zero elementos;
Tamanho "padro".
*/
Pilha() {
posTopo = -1;
maxTam = 1000;

}
/*

Pilha(int t)
Mtodo construtor. Contm todas as instrucoes que sempre serao executadas
quando for instanciado um objeto desta classe.

Zero elementos;
Busca o tamanho que vai ser utilizado para a pilha.
*/
Pilha<T>(int t) {
posTopo = -1;
dados = new T[t];
maxTam = t;
}
/*

void empilha(T dado)


Mtodo que insere um elemento (recebido como parmetro) no topo da pilha.

*/
void empilha(T dado) {
if (PilhaCheia()) {
throw ErroPilhaCheia();
} else {
posTopo = posTopo + 1;
dados[posTopo] = dado;
}
}
/* T desempilha()
Mtodo que retorna e remove o elemento que est no topo da pilha, ou seja,
o ltimo elemento inserido.

*/
T desempilha() {
if (PilhaVazia()) {
throw ErroPilhaVazia();
} else {
T aux = dados[posTopo];
posTopo = posTopo - 1;
return aux;
}
}
/* T topo()
Mtodo que retorna o elemento que est no topo da Pilha.
*/
T topo() {
if (PilhaVazia()) {
throw ErroPilhaVazia();
} else {
return dados[posTopo];
}
}
/* int getPosTopo()
Mtodo que retorna(em inteiro) a posio em que se encontra o ultimo elemento
inserido,
ou seja, o topo.
*/
int getPosTopo() {
if (PilhaVazia()) {
throw ErroPilhaVazia();

} else {
return posTopo;
}
}
/* void limparPilha()
Mtodo que seta o posTopo para -1 para limpar a pilha.
*/
void limparPilha() {
posTopo = -1;
}
/* bool PilhaVazia()
Mtodo que retorna um boolean para verificar se a pilha est vazia ou no.
TRUE se estiver vazia e FALSE se a pilha possuir algum elemento.
*/
bool PilhaVazia() {
return (posTopo == -1);
}
/* bool PilhaCheia()
Mtodo que retorna um boolean para verificar se a pilha est cheia ou no.
TRUE se estiver cheia e FALSE se a pilha no estiver com o nmero mximo de
elementos.
*/
bool PilhaCheia() {
return (posTopo == (maxTam-1));
}
};
#endif

Вам также может понравиться