QUESTÕES:

7 - (FADURPE 2024) Considere uma estrutura de pilha preenchida inicialmente com os seguintes inteiros: 1 ,
2,3,4,5,6, nessa ordem, do primeiro ao último a entrar na pilha. Suponha que executemos os seguintes comandos de atribuições a variáveis inteiras, alternados com comandos de pilha:
VAR1:=7; VAR2:=8; VAR3:=9;
VAR4:=POP;
PUSH(VARI);
PUSH(VAR2);
VARI:=POP;
VAR2:=POP;
PUSH(VAR3);
PUSH(VARI);
PUSH(VAR2);
PUSH(VAR4);
Assim, em quanto resulta o conteúdo da pilha?
A) 1,2,3,4,5,9,8,7,6
B) 1,2,3,4,5,6,7,8,9
C) 1,2,3,8,5,7,6,9
D) 1,2,3,9,8,7,6,5
E) 1,2,3,4,9,7,5,6

Passo 1

Resumo do enunciado: temos uma pilha inicialmente carregada, na ordem de entrada, com os inteiros
1,2,3,4,5,6
(de modo que 6 está no topo). Depois aplicamos uma sequência de comandos VARx := …, POP e PUSH(…).
Conteúdo da matéria: estrutura de dados pilha (stack), operações básicas POP (remove do topo) e PUSH (insere no topo).

Passo 2

Estado inicial antes de qualquer comando:
– Pilha:
[,1,2,3,4,5,6,]
onde 6 é o topo.
– Variáveis: VAR1, VAR2, VAR3, VAR4 (ainda sem uso).

Passo 3

Executando as primeiras atribuições e o primeiro POP:
  1. VAR1 := 7
  2. VAR2 := 8
  3. VAR3 := 9
  4. VAR4 := POP
    – POP retira o elemento do topo da pilha (6) e guarda em VAR4.
    – Pilha passa a ser .

Passo 4

Agora seguimos a sequência completa:
5) PUSH(VAR1) → insere 7 no topo
Pilha =
6) PUSH(VAR2) → insere 8 no topo
Pilha =
7) VAR1 := POP
– POP retira 8; VAR1 ← 8
– Pilha =
8) VAR2 := POP
– POP retira 7; VAR2 ← 7
– Pilha =
9) PUSH(VAR3) → insere 9
Pilha =
10) PUSH(VAR1) → insere 8
Pilha =
11) PUSH(VAR2) → insere 7
Pilha =
12) PUSH(VAR4) → insere 6
Pilha =

Resposta

O conteúdo final da pilha, do fundo para o topo, é
1,2,3,4,5,9,8,7,6
ou seja, alternativa A.

Exercícios relacionados