Resolução da Questão 63 de 2011

Estruturas de dados são questões que podem cair na prova do ano que vem, pois sempre elas estão aparecendo, e não é muito interessante sabermos alguns conceitos ou mesmo resolver algumas questões referentes a pilhas, filas e árvores, vamos a uma que caiu em uma prova?

                             Questão 63 de 2011

                            Sabe-se que T é uma estrutura de dados do tipo PILHA e as operações PUSH (s) e POP(s) são comandos respectivos para  empilhar  e  desempilhar  um  bit “s” (0 ou 1) nesta estrutura. Supondo-se que o conjunto de bits armazenados na estrutura T representa um número binário qualquer, cujo bit menos significativo é o elemento de base da pilha e o bit mais significativo é o elemento de topo, a realização da operação PUSH (1):

(A) divide por 2 o valor binário anteriormente armazenado na pilha.

(B) soma 1 ao valor binário anteriormente armazenado na pilha.

(C) multiplica por 2 o valor binário anteriormente armazenado na pilha.

(D) soma 2^n-1 ao valor binário anteriormente armazenado na pilha, sendo “n” a quantidade atual de elementos da pilha após a operação efetuada.

(E) diminui em 2^n-1 o valor binário anteriormente armazenado na pilha, sendo “n” a quantidade atual de elementos da pilha após a operação efetuada.

Gente, o que é uma pilha? É só lembrar da pilha de pratos que a gente lava todo o dia para a nossa esposa (para as mulheres da área de TI isso não serve) hheheeh. São situações em que nós colocamos algo um em cima do outro.

A questão fala das funções do PUSH e do POP, até aí tranquilo é isso mesmo.

Aí ele diz que tem uma pilha com um número binário qualquer, então pense em um número, eu vou pensar no número 11 em decimal que fica “1011” em binário. Ele também diz que o número menos significativo é o da base e o mais significativo é o do topo, sabendo que o algarismo “1” que está antes do zero, da esquerda para a direita é o mais significativo e o último, encostado em outro um, lá na direita é o bit menos significativo temos:

           1 -> bit mais significativo

           0

           1 

           1 -> bit menos significativo

Daí ele diz que faz PUSH (1), então fica assim:

           1 -> O um que foi colocado pelo PUSH

           1 -> bit mais significativo

           0

           1 

           1 -> bit menos significativo

Ficamos com um número 11011 = 27 em decimal.

Tínhamos 11, agora temos 27. Poderíamos fazer todos os cálculos mas vamos para o certo logo.

Letra D, ela fala que: soma 2^n-1 ao valor anteriormente armazenado na pilha sendo que o “n” é a quantidade atual de elementos da pilha, então

2^n-1 = 2^5-1 = 2^4 = 16, somamos 16 ao 11 que tínhamos, 16 + 11 = 27. Podem ver a alternativa certa é a “D”, espero ter ajudado!