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.
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 II, III e IV estão corretas.
b.Apenas as afirmativas I e III estão corretas.
c.Apenas as afirmações I e II estão corretas.
d.Apenas as afirmativas I, II e IV estão corretas.
e.Apenas as afirmações III e IV estão corretas
Anexos:
Soluções para a tarefa
Respondido por
43
Apenas as afirmações I e II estão corretas.
Matheusl666:
Correto
Perguntas interessantes