Você está na página 1de 2

Estruturas de Dados com disciplina de acesso do tipo PILHA

Conceito:
“LIFO” (Last In / First Out) - Último-que-Entra / Primeiro-que-Sai.
· Todo acesso acontece no TOPO da PILHA, ou seja, em apenas
uma extremidade da estrutura;
· ED’s:
#define MAXPILHA 10
struct TpPilha
{ int TOPO;
char PILHA[MAXPILHA];
};

Entra Sai

Topo

Uma pilha de pratos

Operações Associadas
® Inicialização da estrutura;
® Insere na pilha; (PUSH)
® Retira da pilha; (POP)
® Retorna elemento do TOPO;
® Verifica se PILHA cheia;
® Verifica se PILHA vazia;
Exibe Pilha.

Implementação em C e exemplo

//Obrigatório SEMPRE
void inicializa ( TpPilha &p ) 3
{ 2 TOPO = -1

p.TOPO = -1; 1

} 0
// Insere M, K, A
void insere ( TpPilha &p, char elem ) 3 3 3
{ 2 TOPO = 0 2 TOPO = 1 2 A TOPO = 2
p.PILHA[++p.TOPO] = elem;
1 1 K 1 K
}
0 M 0 M 0 M

//Retira, OBRIGATORIAMENTE o elemento do TOPO deve ser retornado.


Portanto, o A deve ser retirado. Insere S
char retira ( TpPilha &p ) 3 3
{ 2 TOPO = 1 2 S TOPO = 2

return p.PILHA[p.TOPO--]; 1 K 1 K

} 0 M 0 M

//Retorna elemento do TOPO


char elementoTopo ( TpPilha p ) 3
{ 2 S TOPO = 2

return p.PILHA[p.TOPO]; 1 K

} 0 M

//Verifica se PILHA cheia


int cheia ( int topo )
{
return topo == MAXPILHA -1;
}

//Verifica se PILHA vazia void ExibirPilha(TpPilha p)


{
int vazia ( int topo ) while (!vazia(p.TOPO))
printf("\n%c", retira(p));
}
{
return topo == -1;
}

Você também pode gostar