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: 1637 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: 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: 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |