Tenho que fazer um programa em C++ que leia os caracteres de meu nome, imprima a pilha e depois imprima o inverso da pilha.
O professor passou alguns algoritmos e pediu para fazermos isso, dei uma pesquisada na internet, alguns videos e cheguei no codigo abaixo, mas, tenho alguns erros que não encontro, ou algo de errado que estou fazendo. alguém pode me ajudar?
Obs.: com numeros inteiros consegui fazer, mas com char....
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int const MAX=1000;
int pilha[MAX];
int tope;
int pilha_tamanho(){
return tope+1;
}
bool pilha_vazia(){
if (tope==-1)
return true;
else
return false;
}
bool pilha_cheia(){
if (tope==MAX-1)
return true;
else
return false;
}
bool push (char &nom){
if (pilha_cheia()){
return false;
}else{
pilha[tope]=nom;
tope++;
return true;
}
}
bool pop (char nom){
if (pilha_vazia()){
return false;
}else{
nom=pilha[tope];
tope--;
return true;
}
}
int main(){
int valor, i;
char nom;
cout<<"Empilhar"<<endl;
push('d');
push('i');
push('o');
push('g');
push('o');
for(i=0; i<5; i++){
cout<<pilha[i]<<endl<<endl;
}
cout<<"Desempilhar"<<endl;
while(pop(nom)){
cout<<valor<<endl<<endl;
}
cout<<"Tamanho da pilha: "<<pilha_tamanho();
return 0;
}
Pergunta
diogotal
Boa tarde,
Tenho que fazer um programa em C++ que leia os caracteres de meu nome, imprima a pilha e depois imprima o inverso da pilha.
O professor passou alguns algoritmos e pediu para fazermos isso, dei uma pesquisada na internet, alguns videos e cheguei no codigo abaixo, mas, tenho alguns erros que não encontro, ou algo de errado que estou fazendo. alguém pode me ajudar?
Obs.: com numeros inteiros consegui fazer, mas com char....
#include <iostream> #include <conio.h> #include <stdio.h> #include <stdlib.h> using namespace std; int const MAX=1000; int pilha[MAX]; int tope; int pilha_tamanho(){ return tope+1; } bool pilha_vazia(){ if (tope==-1) return true; else return false; } bool pilha_cheia(){ if (tope==MAX-1) return true; else return false; } bool push (char &nom){ if (pilha_cheia()){ return false; }else{ pilha[tope]=nom; tope++; return true; } } bool pop (char nom){ if (pilha_vazia()){ return false; }else{ nom=pilha[tope]; tope--; return true; } } int main(){ int valor, i; char nom; cout<<"Empilhar"<<endl; push('d'); push('i'); push('o'); push('g'); push('o'); for(i=0; i<5; i++){ cout<<pilha[i]<<endl<<endl; } cout<<"Desempilhar"<<endl; while(pop(nom)){ cout<<valor<<endl<<endl; } cout<<"Tamanho da pilha: "<<pilha_tamanho(); return 0; }Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.