Buscar

Implementação de Pilha em C/C++

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aluno: SÉRGIO VITOR DA SILVA JOFFER R.G.M.: 123.408
Polo: CAPITAL - CAMPO GRANDE-MS Data: 3 MAI 20
ESTRUTURA DE DADOS I
ATIVIDADES DA AULA 07
Faça um programa na linguagem C/C++ que implemente uma Pilha por meio de um
vetor de inteiros, de tamanho n, alocado dinamicamente. A implementação deverá
contemplar as operações de inserção e remoção de elementos na Pilha. Para isso, o
programa deverá apresentar um menu para que o usuário possa escolher a operação
desejada. Após cada operação realizada a Pilha deverá ser apresentada na tela.
#include <iostream>
using namespace std;
void imprime_Vetor(int *pilha, int tamanho) {
for (int i = 0; i < tamanho; i++) {
std::cout << pilha[i] << " - " << std::endl;
}
std::cout << "\n\n" << std::endl;
}
void push(int *topo, int *pilha, int tamanho, int x) {
if (*topo == tamanho - 1) {
std::cout << "Não foi posível adicionar o valor. Pilha cheia!\n" << std::endl;
} else {
*topo = *topo + 1;
pilha[*topo] = x;
}
}
void pop(int *topo, int *pilha, int tamanho) {
if (*topo == -1) {
std::cout << "A pilha esta vazia!!\n\n" << std::endl;
} else {
std::cout << "Valor removido: " << pilha[*topo] << std::endl;
pilha[*topo] = 0;
*topo = *topo - 1;
}
}
Aluno: SÉRGIO VITOR DA SILVA JOFFER R.G.M.: 123.408
Polo: CAPITAL - CAMPO GRANDE-MS Data: 3 MAI 20
void sair() {
std::cout << "Encerrando a execução do programa!!" << "\n\n" << std::endl;
}
int main() {
int tamanho, x, opt;
int topo = -1;
std::cout << "Informe o número de elementos do vetor[]: " << std::endl;
std::cin >> tamanho;
int *pilha = new int[tamanho];
do {
std::cout << "================================" << std::endl;
std::cout << "MENU PRINCIPAL" << std::endl;
std::cout << "================================" << std::endl;
std::cout << "1. EMPILHAR" << std::endl;
std::cout << "2. DESEMPILHAR" << std::endl;
std::cout << "0. SAIR" << std::endl;
std::cin >> opt;
switch (opt) {
case 0:
sair();
break;
case 1:
std::cout << "Informe o valor a ser empilado: " << std::endl;
std::cin >> x;
push(&topo, pilha, tamanho, x);
imprime_Vetor(pilha, tamanho);
break;
case 2:
pop(&topo, pilha, tamanho);
imprime_Vetor(pilha, tamanho);
break;
default:
std::cout << "Opção invalida!" << std::endl;
}
} while (opt != 0);
return 0;
}

Outros materiais