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.
Soluções para a tarefa
Respondido por
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
Português,
5 meses atrás
Informática,
5 meses atrás
Ed. Física,
6 meses atrás
Português,
6 meses atrás
Química,
11 meses atrás
Matemática,
11 meses atrás
afirmativa II está errada pq não é uma lista estática