Buscar

atividade 07

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

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.
1 #include <iostream>
2
3 using namespace std;
4
5 void imprime_Vetor(int *pilha, int tam){
6
7 for(int i = 0; i < tam; i++){
8 cout << pilha[i] << " - ";
9 }
10 cout << "\n\n";
11 }
12
13 void push(int *topo, int *pilha, int tam, int x){
14
15 if(*topo == tam - 1){
16 cout << "Não foi possível adicionar o valor. Pilha cheia!\n";
17
18 } else{
19 *topo = *topo + 1;
20 pilha[*topo] = x;
21 }
22 }
23
24 void pop(int *topo, int *pilha, int tam){
25
26 if(*topo == -1){
27 cout << "A pilha está vazia!!\n\n";
28
29 } else{
30 cout << "Valor removido: " << pilha[*topo] << "\n\n";
31 pilha[*topo] = 0;
32 *topo = *topo - 1;
33 }
34 }
35
36
37 void sair(){
38
39 cout << "Encerrando a execução do programa!!\n\n";
40 }
41
42 int main()
43 {
44 int tam, x, opt;
45 int topo = -1;
46
47 cout << "Informe o número de elementos do vetor: ";
48 cin >> tam;
49 int *pilha = new int[tam];
50
51 do{
52 cout << "-------------------------------------------------------" << endl;
53 cout << " MENU " << endl;
54 cout << "-------------------------------------------------------" << endl;
55 cout << "1. EMPILHAR " << endl;
56 cout << "2. DESEMPILHAR " << endl;
57 cout << "0. SAIR " << endl;
58 cout << "-------------------------------------------------------" << endl;
59
60 cin >> opt;
61
62 system("clear");
63
64 switch(opt){
65
66 case 0:
67 sair();
68 break;
69
70 case 1:
71
72 cout << "Informe o valor a ser empilhado: ";
73 cin >> x;
74 push(&topo, pilha, tam, x);
75 imprime_Vetor(pilha, tam);
76 break;
77
78 case 2:
79
80 pop(&topo, pilha, tam);
81 imprime_Vetor(pilha, tam);
82 break;
83
84 default:
85 cout << "Opção inválida! " << endl;
86 }
87
88 } while(opt != 0);
89
90 return 0;
91 }

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais