Estruturas de Dados em C#: Pilhas, Filas e Listas
Pilha Estática
public class Pilha
{
private const int CAPACIDADE = 5; // define o tamanho máximo desta pilha.
private string[] dados = new string[CAPACIDADE]; // vetor para guardar os dados da pilha.
private int topo = -1; // variável que irá indicar a posição no vetor do topo da pilha.
public int Tamanho()
{
return topo + 1; // lembre-se que o vetor inicia da posição zero...
}
public bool Vazia()
{
return Tamanho() == 0;
}
public void Empilha(string p_valor)
{
if (Tamanho() != CAPACIDADE)
{
topo++;
dados[topo] = p_valor;
}
else
{
throw new Exception("A pilha está cheia!!!");
}
}
public string Desempilha()
{
if (Vazia() == true)
{
throw new Exception("A pilha está vazia!!!");
}
else
{
topo--;
return dados[topo + 1];
}
}
public string RetornaTopo()
{
if (Vazia() == true)...