Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * ESTRUTURAS DE DADOS – AULA 6 ANITA MACIEL Rio de Janeiro, 2011 * * * * * * FILA * * VOCÊ ERROU! NÃO ERA PILHA? * * VOCÊ ERROU! NÃO ERA PILHA? ERA! E AGORA? * * VOCÊ ERROU! NÃO ERA PILHA? ERA! E AGORA? Pressiona aquelas teclas * * * * PILHA UFA! * * PILHA Last In First Out * * Conceito de Pilha “Uma pilha é um tipo especial de Lista Linear em que todas as operações de inserção e remoção são realizadas numa mesma extremidade, denominada topo.” (PEREIRA, Silvio. L., 2004, p. 35) * * Características da Pilha Inserção ou Remoção de um elemento sempre acontece na mesma extremidade. * * Inserção * * Remoção * * Operações realizadas com Pilhas 1) Inicializa () ou Init() 2) Empilhar() ou Push() 3) Desempilhar() ou Pop() 4) acessoTopo() ou Top() 5) verificaPilhaCheia() ou isFull() 6) verificaPilhaVazia() ou isEmpty() * * Inicializa (...) ou Init(...) * * Empilhar(...) ou Push(...) * * * * Empilhar(...) ou Push(...) * * Empilhar(...) ou Push(...) * * * * Desempilhar(...) ou Pop(...) * * * * Desempilhar(...) ou Pop(...) * * Desempilhar(...) ou Pop(...) * * * * acessoTopo(...) ou Top(...) * * * * acessoTopo(...) ou Top(...) * * acessoTopo(...) ou Top(...) * * * * verificaPilhaCheia(...) ou isFull(...) * * #include <iostream> #define TAM 5 using namespace std; void empilha(int p[], int &t, int v); int desempilha(int p[], int &t, int &v); void mostraTopo(int p[], int &t); void situacaoPilha(int p[], int &t); * * int main() { int op, val, topo=-1, pilha[TAM],resp; do { system("cls"); system("color f0"); cout<<"\nPILHA( LIFO- Last In - First Out )\n\n"; cout<<"\n1- Inserir um valor na pilha"; cout<<"\n2- Remover um valor da pilha"; cout<<"\n3- Mostrar o elemento do topo da pilha"; cout<<"\n4- Mostrar situacao da pilha"; cout<<"\n5- Sai"; cout<<"\nOpcao: "; cin>>op; system("cls"); * * switch(op) { case 1: cout<<"Digite o valor a ser empilhado: "; cin>>val; empilha(pilha, topo, val); break; case 2: resp=desempilha(pilha,topo,val); if(resp==0) cout<<"\nATENCAO. Pilha Vazia\n"; else cout<<"\nValor removido: "<<val; break; case 3: mostraTopo(pilha,topo); break; case 4: situacaoPilha(pilha,topo); break; case 5: cout<<"\nPrograma basico da PILHA\n"; break; default: cout<<"\nOPCAO INVALIDA\n"; } cout<<"\n\n";system("pause"); }while(op!=5); } * * /* Insere */ void empilha(int p[], int &t, int v) { if(t == TAM-1) cout<<"\nATENCAO. Pilha Cheia\n"; else { t++; //atualiza o topo p[t]=v; // pilha recebe valor } } /* Remove */ int desempilha(int p[], int &t, int &v) { if(t == -1) return 0; else { v=p[t];//guarda o valor do topo t--; //atualiza o topo return 1; } } * * /* Mostra a pilha */ void mostraTopo(int p[], int &t) { if(t == -1) cout<<"\nATENCAO. Pilha Vazia\n"; else cout<<"\nElemento do Topo da PILHA: "<<p[t]; } /* Mostra situacao da Pilha */ void situacaoPilha(int p[], int &t) { if(t == -1) cout<<"\nATENCAO. Pilha Vazia\n"; else if (t == TAM ) cout<<"\nATENCAO. Pilha Cheia\n"; else cout<<"\nTotal de elementos na pilha: "<<t+1<<"\n"; cout<<"\n\nEspaco disponivel na pilha: "<<TAM-(t+1)<<"\n"; } * * * * * * * * * * * * * * Reveja todos os conceitos desta aula. Aprimore seus conhecimentos pesquisando no material didático e na bibliografia recomendada (procure na Biblioteca do campus ou na Biblioteca Virtual/ SIA). Faça todos os exercícios. * * Esteja sempre em contato com seu professor. Não durma com dúvidas. Assista a esta aula quantas vezes for necessário. * * * *
Compartilhar