Você está aqui: C# ::: Estruturas de Dados ::: Pilhas |
Como criar uma pilha em C# usando um vetor de ints - Estruturas de Dados em C#Quantidade de visualizações: 1779 vezes |
A Pilha é uma estrutura de dados do tipo LIFO - Last-In, First-Out (Último a entrar, primeiro a sair). Neste tipo de estrutura, o último elemento a ser inserido é o primeiro a ser removido. Veja a imagem a seguir:![]() Embora seja mais comum a criação de uma estrutura de dados do tipo Pilha de forma dinâmica (usando ponteiros e referências), nesta dica eu mostrarei como podemos criá-la em C# usando um array, ou seja, um vetor. No exemplo eu usei inteiros, mas você pode modificar para o tipo de dados que você achar mais adequado. Veja o código completo para uma classe Pilha usando um vetor de ints. Veja que o tamanho do vetor é informado no construtor da classe. Note também a lógica empregada na construção dos métodos empilhar(), desempilhar() e imprimirPilha(): Código para Pilha.cs: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
using System;
namespace Estudos {
// Esta classe representa uma pilha usando array (vetor)
class Pilha {
private int[] elementos; // elementos na pilha
private int topo; // o elemento no topo da pilha
private int maximo; // a quantidade máxima de elementos na pilha
// construtor da classe Pilha
public Pilha(int tamanho) {
// constrói o vetor
elementos = new int[tamanho];
// define o topo como -1
topo = -1;
// ajusta o tamanho da pilha para o valor recebido
maximo = tamanho;
}
// método usado para empilhar um novo elemento na pilha
public void empilhar(int item) {
// a pilha já está cheia?
if (topo == (maximo - 1)) {
Console.WriteLine("\nA pilha está cheia\n");
return;
}
else {
// vamos inserir este elemento no topo da pilha
elementos[++topo] = item;
}
}
// méodo usado para desempilhar um elemento da pilha
public int desempilhar() {
// a pilha está vazia
if (topo == -1) {
Console.WriteLine("\nA pilha está vazia\n");
return -1;
}
else {
Console.WriteLine("Elemento desempilhado: " + elementos[topo]);
return elementos[topo--];
}
}
// método que permite imprimir o conteúdo da pilha
public void imprimirPilha() {
// pilha vazia
if (topo == -1) {
Console.WriteLine("\nA pilha está vazia\n");
return;
}
else {
// vamos percorrer todos os elementos da pilha
for (int i = 0; i <= topo; i++) {
Console.WriteLine("Item[" + (i + 1) + "]: " + elementos[i]);
}
}
}
}
}
Veja agora o código para a classe principal, ou seja, a classe Main usada para testar a funcionalidade da nossa pilha: Código para Principal.cs: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
using System;
namespace Estudos {
class Principal {
static void Main(string[] args) {
// vamos criar uma nova pilha com capacidade para 5 elementos
Pilha p = new Pilha(5);
// vamos empilhar 3 elementos
p.empilhar(34);
p.empilhar(52);
p.empilhar(18);
// vamos mostrar os elementos na pilha
Console.WriteLine("Itens presentes na Pilha\n");
p.imprimirPilha();
// agora vamos remover e retornar dois elementos da pilha
Console.WriteLine();
p.desempilhar();
p.desempilhar();
// vamos mostrar os elementos na pilha novamente
Console.WriteLine("\nItens presentes na Pilha\n");
p.imprimirPilha();
Console.WriteLine("Pressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: Itens presentes na Pilha Item[1]: 34 Item[2]: 52 Item[3]: 18 Elemento desempilhado: 18 Elemento desempilhado: 52 Itens presentes na Pilha Item[1]: 34 |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
|
C++ Builder - Como habilitar ou desabilitar um TEdit usando a função EnableWindow() da API do Windows usando C++ Builder |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







