O Recurssividade Na Informática
Por: Abruets • 20/11/2020 • Trabalho acadêmico • 968 Palavras (4 Páginas) • 160 Visualizações
#include <iostream>
using namespace std;
//Registro de dados usado para armazenar as informações de cada nó da
//pilha
struct pacote{
string ID;
pacote *prox = NULL;
};
//Classe pilha
class pilha{
private:
pacote *topo;
public:
pilha(); //construtor
~pilha(); //destrutor
void empilha(pacote entrada);
string desempilha();
bool vazia();
//método para depuração - imprime os valores armazenados sem
//desempilhar
void depura();
};
pilha::pilha(){
topo = NULL;
};
pilha::~pilha(){
while (!vazia()){
desempilha();
}
delete topo;
};
void pilha::empilha(pacote entrada){
pacote *novo = new pacote; // alocação do novo nó
*novo = entrada; //inserção da informação no novo nó
novo->prox = topo; //novo nó "aponta" para o topo da pilha
topo = novo; //o topo passa a ser o nó inserido
};
string pilha::desempilha(){
string excluido;
if (!vazia()){
pacote *apagar;//criação de um ponteiro auxiliar
apagar = topo;//auxiliar recebe o endereço do topo
topo = topo->prox;//topo é atualizado
excluido = apagar->ID;
apagar->prox = NULL;
delete apagar; //nó do topo é apagado
} else {
excluido = "-";
}
return excluido;
};
bool pilha::vazia(){
if (topo == NULL)
return true;
else
return false;
};
//impressão sem destruição da pilha
void pilha::depura(){
pacote *auxiliar = topo;
if (!vazia()){
while (auxiliar != NULL){
cout<<auxiliar->ID<<endl;
auxiliar = auxiliar->prox;
}
} else {
cout<<"ITEM NAO CADASTRADO"<<endl;
}
};
int main(){
//CRIE O PROGRAMA PARA MANIPULAR A ROTA DE ENTREGA AQUI
pilha *Pilha = new pilha();
pilha *OutraPilha = new pilha();
...