Questões de Concurso
Sobre pilhas em algoritmos e estrutura de dados
Foram encontradas 245 questões
Qual é a sequência de empilhamento e desempilhamento que finaliza com a sequência 2, 3, 1 (1 fica no topo) na pilha R, com um mínimo de movimentos?
Dado
Exemplo de notação:
DP: significa desempilhar da pilha P
E2Q: significa empilhar 2 na pilha Q
• Push (n): empilha um valor n
• Pop (n): desempilha um valor colocando-o em n
• Sum(): é o mesmo que a sequência
Pop(a)
Pop(b)
Push(a+b)
• Sub(): é o mesmo que a sequência
Pop(a)
Pop(b)
Push(a – b)
• Mul(): é o mesmo que a sequência
Pop(a)
Pop(b)
Push(a x b)
• Div(): é o mesmo que a sequência
Pop(a)
Pop(b)
Push(a ÷ b)
A sequência de operações
Push(3)
Push(7)
Sum()
Push(2)
Push(8)
Push(3)
Push(2)
Sub()
Mul()
Sum()
Div()
Push(7)
Push(6)
Sub()
Div()
deixará, no topo da pilha, o resultado do cálculo da expressão
- Pilha é uma lista (LIFO) de itens com a restrição de que inserções (Push) e retiradas (Pop) de itens só podem ser feitas no final da lista (Topo da lista).
- CriarP cria uma pilha P vazia.
- Push(P, i) insere o item i no Topo da pilha P.
- Pop(P) retira e retorna da pilha P o item que está no Topo da pilha P.
- Pop(P) para pilha P vazia = Erro.
Com essa especificação, quais são, respectivamente, os resultados das expressões
Pop(Push(CriarP, X)) ; Pop (CriarP) e Pop(Push(P,(Pop(Push(CriarP, X))))) ?
I. A operação de inserção de um elemento na pilha precisa reorganizar a estrutura de dados, podendo gastar um tempo de execução de O(n).
II. A operação de retirada de um elemento da pilha é uma operação de tempo constante O(1).
III. Na operação de consultar toda a pilha, todos os elementos são percorridos, gastando-se um tempo de execução de O(n).
Estão CORRETAS as afirmativas:
PUSH(P,"B")
PUSH(P,"R")
PUSH(P,"A")
PUSH(P,"S")
PUSH(P,"I")
PUSH(P,"L")
PUSH(P,"2")
PUSH(P,"0")
PUSH(P,"1")
PUSH(P,"1")
TOP(P)
POP(P)
TOP(P)
POP(P)
POP(P)
POP(P)
Após essa sequência, que elemento é retornado pela operação TOP(P)?
I. Em uma pilha implementada por meio de arranjos (vetores), é necessário um cursor para controlar a posição do item no topo da pilha.
II. As pilhas possuem a seguinte propriedade: o último item inserido é o primeiro item que pode ser retirado da lista.
III. Os itens da pilha são colocados um sobre o outro, com o item inserido mais recentemente no fundo e o item inserido menos recentemente no topo.
IV. As pilhas são chamadas de listas lifo (last in, first out).
Dados de entrada: 11, 12, 23, 14, 25, 50, 8, 18, 29, 10
As estruturas mostradas ficam
I. Pilha: (topo) 10 - 29 - 18 - 8 - 50 - 25 - 14 - 23 - 12 - 11
II. Fila: (começo) 11 - 12 - 23 - 14 - 25 - 50 - 8 - 18 - 29 - 10 (fim)
III. Fila: (começo) 10 - 29 - 18 - 8 - 50 - 25 - 14 - 23 - 12 - 11 (fim)
IV. Pilha: (topo) 11 - 12 - 23 - 14 - 25 - 50 - 8 - 18 - 29 - 10
V. A fila mostrada fica com os elementos em ordem invertida dos dados de entrada
Está correto o que se afirma APENAS em

O método concat() irá produzir uma pilha na qual o elemento que estará no seu topo será o topo da pilha s1. Além disso, o elemento no topo de s2 ficará imediatamente abaixo da base de s1. A Figura a seguir exibe a pilha produzida pelo método concat() a partir das pilhas s1 e s2:

Qual implementação do método concat() produz o resultado descrito acima?
É impossível implementar uma estrutura de dados tipo pilha como um TAD, visto que a pilha consiste em um dado do tipo primitivo.
Uma pilha — uma estrutura de dados que permite a inserção de novos elementos e a remoção de elementos antigos — sujeita-se à seguinte regra de operação: sempre que houver uma remoção, o elemento removido corresponderá ao elemento presente na estrutura há mais tempo.
Pilha é uma estrutura de dados do tipo lista linear, em que as operações TOP, PUSH e POP são realizadas no topo da pilha e, por isso, são denominadas LIFO.