Informática, perguntado por lucasyobhpaqwak, 10 meses atrás

Atividade 3 - estrutura de dados I

QUESTÃO 1
A Pilha é uma das estruturas mais simples e mais versáteis dentre as utilizadas na computação. Na informática, a pilha é uma estrutura em que os dados são inseridos e removidos no seu topo. São estruturas conhecidas como Last In, First Out (LIFO), que pode ser traduzido por Último a Entrar, Primeiro a Sair.



OLIVEIRA, P. M.; PEREIRA, R. L. Estrutura de Dados I. Maringá-Pr.: Unicesumar, 2019.



Analise o código da função push:



void push() {
if (pilha.fim == tamanho) {
printf(“\nA pilha está cheia, impossível empilhar um novo elemento!\n\n”);
system(“pause”);
}
else {
printf(“\nDigite o valor a ser empilhado: “);
scanf(“%d”, &pilha.dados[pilha.fim]);
pilha.fim++;
}
}



Considere a estrutura de dado pilha com os seguintes valores:



tamanho = 9
pilha.ini = 0
pilha.fim = 9
pilha.dados:

Índice

0

1

2

3

4

5

6

7

8

9

Dados

5

2

1

8

4

6

3

88

22

0



Assinale a alternativa que corresponde a próxima execução da função push.

Alternativas

Alternativa 1:
Alocará um novo índice ao vetor para receber o próximo valor a ser informado.

Alternativa 2:
Será exibido a mensagem "A pilha está cheia, impossível empilhar um novo elemento!".

Alternativa 3:
O novo elemento será inserido ao final da pilha e o valor de pilha.fim será alterado para 10.

Alternativa 4:
O elemento será inserido ao final da pilha e o valor de pilha.fim permanecerá o mesmo, pois já está cheia.

Alternativa 5:
O novo elemento será inserido ao final da pilha e o valor de pilha fim não será alterado, pois já possui o valor correspondente ao tamanho máximo do vetor.

Soluções para a tarefa

Respondido por vanessafonntoura
0

A próxima execução da função push podemos afirmar que a Alternativa 4:  O elemento será inserido ao final da pilha e o valor de pilha.fim permanecerá o mesmo, pois já está cheia.

A cada invocação do procedimento o fluxo de execução  desvia para o início do procedimento, e ao final da execução do procedimento deve  ser feito um desvio para o comando seguinte à chamada de procedimento:

  • após a  execução do comando na linha 7 deve ser executado o comando na linha 16 na primeira invocação; na segunda invocação.

Os operandos das instruções push e pop são sempre registradores. Assim, somente é possível empilhar e desempilhar palavras inteiras.

Espero ter ajudado.

Perguntas interessantes