QUESTÕES:
7 - (FADURPE 2024) Considere uma estrutura de pilha preenchida inicialmente com os seguintes inteiros: 1 ,
, 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)
B)
C)
D)
E)
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)
B)
C)
D)
E)
Passo 1
Resumo do enunciado: temos uma pilha inicialmente carregada, na ordem de entrada, com os inteiros
(de modo que 6 está no topo). Depois aplicamos uma sequência de comandos
Conteúdo da matéria: estrutura de dados pilha (stack), operações básicas POP (remove do topo) e PUSH (insere no topo).
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:
– Pilha:
onde 6 é o topo.
– Variáveis: VAR1, VAR2, VAR3, VAR4 (ainda sem uso).
– Variáveis: VAR1, VAR2, VAR3, VAR4 (ainda sem uso).
Passo 3
Executando as primeiras atribuições e o primeiro POP:
- VAR1 := 7
- VAR2 := 8
- VAR3 := 9
- 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 =
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, é
ou seja, alternativa A.