Informática, perguntado por celsooliveirajr, 6 meses atrás

Questão 5

Observe o código-fonte a seguir:

01 - typedef struct NO{
02 - int dado;
03 - NO* prox;
04 - }NO;
05 -
06 - typedef struct PILHA{
07 - NO* topo;
08 - } PILHA;
09 -
10 - PILHA *p;
11 -
12 - int foo(){
13 - NO* ptr = p->topo;
14 - int dado;
15 - if(ptr != NULL){
16 - p->topo = ptr->prox;
17 - ptr->prox = NULL;
18 - dado = ptr->dado;
19 - free(ptr);
20 - return dado;
21 - }
22 - }

Considerando que o campo topo, da pilha p, é inicializado com NULL, avalie as afirmações a seguir:

I - De acordo com o código, se o topo da pilha é igual a NULL, então a função foo() será incapaz de empilhar um novo elemento.

II - A struct NO serve para representar uma posição individual dentro desta lista estática, uma vez que o campo dado é do tipo inteiro, e não um ponteiro.

III - Uma variável tipo struct PILHA poderia ser declarada de forma estática ou dinâmica, dependendo exclusivamente da necessidade do(a) programador(a).

Assim sendo, pode se dizer que é correto o que se afirma em:

Alternativa 1:
I, apenas.

Alternativa 2:
II, apenas.

Alternativa 3:
III, apenas.

Alternativa 4:
I e III, apenas.

Alternativa 5:
II e III, apenas.

Soluções para a tarefa

Respondido por pbdiro
11

Resposta:

Alternativa 3

Explicação:

A I está errada porque a função é de desempilhar e não empilhar.

A II está errado porque é uma pilha dinâmica e não uma lista estática.


celsooliveirajr: Tinha marcado.Errado.Obrigado pela ajuda.
Perguntas interessantes