Buscar

Aula_06

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.
*
*
*
*

Teste o Premium para desbloquear

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

Outros materiais