Você está aqui: C ::: Estruturas de Dados ::: Pilhas |
Como criar uma pilha em C usando um vetor (array) - Estruturas de Dados em CQuantidade de visualizações: 1008 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 o programa C que cria uma pilha usando um vetor de ints. Veja que o tamanho do vetor é informado com um #define. Note também a lógica empregada na construção das funções empilhar(), desempilhar() e imprimir_pilha(): #include <stdio.h> #include <stdlib.h> #include <locale.h> // tamanho máximo da pilha #define TAM_MAX 5 // função usada para empilhar um novo valor na pilha void empilhar(int valor, int *topo, int pilha[]){ // a pilha já está cheia? if(*topo == (TAM_MAX - 1)){ printf("\nA pilha está cheia.\n"); } else{ *topo = *topo + 1; pilha[*topo] = valor; } } // função usada para desempilhar o elemento no topo da pilha int desempilhar(int *topo, int pilha[]){ int valor; // a pilha está vazia? if(*topo == -1){ printf("\nPilha vazia\n"); exit(1); } else{ valor = pilha[*topo]; *topo = *topo - 1; } return valor; } // função usada para imprimir a pilha void imprimir_pilha(int *topo, int pilha[]){ int i; if(*topo == -1){ printf("\nPilha vazia\n"); exit(1); } else { // vamos percorrer todos os elementos da pilha for (i = 0; i <= *topo; i++) { printf("Item[%d]: %d\n", (i + 1), pilha[i]); } } } int main(int argc, char *argv[]){ setlocale(LC_ALL,""); // para acentos do português // vamos criar uma nova pilha 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 O elemento desempilhado foi: 18 O elemento desempilhado foi: 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 |
VB.NET - Como inverter o conteúdo de uma string em VB.NET usando os métodos ToCharArray() e Reverse() C - Como escrever uma função concat() que reproduz a funcionalidade da função strcat() da linguagem C |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |