Pilha Com Ponteiros
Exames: Pilha Com Ponteiros. Pesquise 862.000+ trabalhos acadêmicosPor: rronaldodematos • 28/9/2014 • 261 Palavras (2 Páginas) • 245 Visualizações
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
typedef struct registro{
int dado;
struct registro *prox;
} tipoPilha;
//função inserir elemento
tipoPilha *inserir(int elemento, tipoPilha *pilha){
tipoPilha *aux;
aux = (tipoPilha* ) malloc(sizeof(tipoPilha));
aux->dado = elemento; //aux usado para passar o elemento inserido para a pilha
aux->prox = pilha;
return aux;
}
//Checar se a pilha está vazia
bool pilhaVazia(tipoPilha *pilha) {
if (pilha== NULL)
return true;
else
return false;
}
//Retornar o último elemento inserido da lista (topo).
int PrintElem (tipoPilha *pilha){
if (pilha != NULL){
printf("\nO topo da pillha: %d", pilha->dado);
}
else{
printf("\nPilha vazia");
}
}
//Remove o elemento do topo da lista
tipoPilha *Remove(tipoPilha *pilha){
if (pilha!= NULL){
tipoPilha *aux;
aux = pilha->prox;
free(pilha);
printf("\nElemento removido\n");
return aux;
}
else{
printf("\nPilha vazia");
}
}
//Remove todos os elementos da lista.
tipoPilha *RemoveTodos(tipoPilha *pilha){
printf("Removendo elementos da pilha ");
while (pilha != NULL){
tipoPilha *aux;
aux =pilha->prox;
free(pilha);
pilha = aux;
printf(".");
}
printf("\nTodos elementos foram removidos!\n");
return pilha;
}
//Exibe todos os elementos da lista.
void exibeTodos(tipoPilha *pilha){
printf("\n\nInicio da pilha:");
while (pilha != NULL){
printf("\n%d", pilha->dado);
tipoPilha *aux;
aux =pilha->prox;
pilha = aux;
}
printf("\nFim da pilha\n");
}
//Função principal, usada para exibir o menu e para operações básicas de printf e afins.
int main() {
tipoPilha *pilha = NULL;
bool terminou = false;
while
...