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

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:
Alternativas


Alternativa 1:
I, apenas.

Alternativa 2:
II, apenas.

Alternativa 3:
III, apenas.

Alternativa 4:
I e III, apenas.

Alternativa 5:
II e III, apenas.


MycaelWellington: Acredito que seja somente a III (alternativa 3)
afirmativa II está errada pq não é uma lista estática
MycaelWellington: e a afirmativa I está errada pq a função está desempilhando e não empilhando.

Soluções para a tarefa

Respondido por MycaelWellington
1

Resposta:

alternativa 3

Explicação:

Acredito que seja somente a III (alternativa 3)

afirmativa II está errada pq não é uma lista estática

e a afirmativa I está errada pq a função está desempilhando e não empilhando.

Perguntas interessantes