Conforme Tenenbaum (2007), uma Pilha possui uma estrutura que pode ser declarada contendo dois objetos:
• um ponteiro, que irá armazenar o endereçamento inicial da Pilha;
• um valor inteiro, que irá indicar a posição do topo da Pilha.
Para utilização de uma Pilha, primeiramente é necessário:
• Criar a declaração da estrutura da Pilha;
• Criar a Pilha com a alocação dinâmica;
• Criar as funções para inserir e remover da Pilha.
A declaração da estrutura inicial para criação de uma Pilha pode ser implementada por:
struct Pilha
{
int topo;
int capacidade;
float * proxElem;
};
struct Pilha minhaPilha;
Imagine agora uma pilha vazia e que receberá alguns comandos push e pop como é demonstrado na imagem abaixo.
q11
Comandos representados na imagem: push 7, push 12, pop, pop, push 23, pop.
Com base na pilha e nos comandos apresentados, analise as afirmações abaixo:
I - ) A aplicação do código abaixo para uma pilha inicialmente vazia e depois resultado dos comandos (push 7, push 12, pop, pop, push 23, pop.) retorna 1.
int pilha_vazia (struct Pilha *p ){
if( p -> topo == -1 )
return 1; /*Sendo o topo igual a -1, a função retorna verdadeiro*/
else
return 0; /*Caso contrário, a função retorna verdadeiro*/
}
II - O retorno dos comandos do exemplo dado (push 7, push 12, pop, pop, push 23, pop) , do exemplo retorna uma pilha vazia.
III - O retorno dos comandos do exemplo dado (push 7, push 12, pop, pop, push 23, pop), é uma pilha com o elemento 23.
IV - A aplicação do código abaixo para uma pilha inicialmente vazia e depois resultado dos comandos (push 7, push 12, pop, pop, push 23, pop.) retorna 1.
int pilha_cheia ( struct Pilha *p ){
if (p -> topo == p -> capacidade - 1)
return 1;
else
return 0;
}
Agora, assinale a alternativa correta.
Escolha uma:
a.
Apenas as afirmativas I e III estão corretas.
b.
Apenas as afirmativas II, III e IV estão corretas.
c.
Apenas as afirmações I e II estão corretas. Correto
d.
Apenas as afirmações III e IV estão corretas.
e.
Apenas as afirmativas I, II e IV estão corretas.
----------------------------------------------------------------------
RESPOSTA CORRETA - C.
Apenas as afirmações I e II estão corretas. Correto
Lista de comentários