Pilha
#include
#include
typedef struct{ int valores[8]; int topo; // índice do último elemento da pilha }pilha;
char menu(); void inserir(pilha *p1); void remover(pilha *p1); void mostrar(pilha p1);
int main(){ setlocale(LC_ALL, "Portuguese"); char op; pilha p1; p1.topo = -1; do{ system("cls"); if(p1.topo < 7) { system("color 07"); printf( "\t-- Estrutura de dados - PILHA --\n" "\t-- (Posições livres: %d) --\n\n", 7-p1.topo); } else{ system("color 4F"); printf( "\t-- Estrutura de dados - PILHA --\n" "\t-- (Posições livres: 0 - A PILHA ESTÁ LOTADA!!) --\n\n"); } op = menu(); //inserir switch(op) { case '1': if(p1.topo < 7) { p1.topo += 1; inserir(&p1); } break; //remover case '2': remover(&p1); break; //Mostrar case '3': mostrar(p1); break; case '4': return 0; break; default: printf("Opção inválida\n\n"); system("pause"); break; } }while(op != 4); }
char menu(){ setlocale(LC_ALL, "Portuguese"); char op; printf( "1 - Inserir número na pilha\n" "2 - Remover número da pilha\n" "3 - Mostrar elementos na pilha\n" "4 - Sair\n"); scanf(" %c", &op);fflush(stdin); return op; }
void inserir(pilha *p1){ system("cls"); printf("\t-- Você está adiconando um valor na posição %d da pilha --\n\n", p1 -> topo); printf("Adicione um valor na pilha: "); scanf("%d", &p1 -> valores[p1 -> topo]); }
void remover(pilha *p1){ if(p1 -> topo >= 0) p1 -> topo -= 1; else{ printf("A pilha está vazia!!!"); system("pause"); } } void mostrar(pilha p1){ system("cls"); int i; printf("\t-- Lista de valores da pilha --\n\n");