P2 ED deus me ajude nessa
p2 de Ed asdsadewadafdadawdad socorro, deus me ajuda
0
0
0
1
Imagine um cenário onde uma fila circular implementada com um array de tamanho 10 está com atributo "fim" no índice 3. A fila possui 6 elementos. Agora, você realiza as seguintes operações, nessa ordem: Remove 3 elementos da fila. Adiciona 4 novos elementos à fila. Qual será o valor do atributo "inicio" após essas operações? (Considere o código a seguir)
3
9
6
4
5
1
7
0
8
2
2
Sobre listas, analise as assertivas abaixo: I. Objetos podem ser inseridos em uma pilha a qualquer momento, mas apenas o que foi inserido mais recentemente (isto é, o último) pode ser removido a qualquer momento. II. Em uma fila, os elementos podem ser inseridos a qualquer momento, mas apenas o elemento que está a mais tempo na fila pode ser removido. III. Em uma fila, os elementos são inseridos e removidos de acordo com o princípio “o último que entra é o primeiro que sai”. Quais estão corretas?
Apenas III.
I, II e III.
Apenas I
Apenas I e II.
Apenas II.
3
Imagine uma fila circular com capacidade de 5 elementos. A fila está com 3 elementos, com o "inicio" apontando para o índice 3 e o "fim" para o índice 0. Neste cenário, qual das afirmações abaixo é verdadeira?
A fila está cheia e não é possível adicionar mais elementos.
A fila está em um estado inválido, pois o "inicio" não pode ser maior que o "fim".
A fila está parcialmente cheia e é possível adicionar mais elementos.
A fila está vazia, pois o "fim" está no índice 0.
4
Foi criada uma estrutura de Pilha, conforme o código a seguir. Após a execução do seguinte trecho de código: Pilha pratos = new Pilha(4); pratos.adicionar(5); pratos.adicionar(3); pratos.adicionar(1); pratos.adicionar(10); Foi verificada a emissão da seguinte mensagem: "Pilha cheia!" Este comportamento deixa claro que:
O atributo "topo" deveria ser inicializado com -1
O aplicativo está com um erro de sintaxe
O aplicativo respeita a capacidade de itens definida pela instrução "Pilha pratos = new Pilha(4);"
O aplicativo tem um comportamento de "Fila"
O aplicativo está correto
5
Qual o código Java para encontrar o último nó de uma Lista Ligada?
No ultimo = inicio.getProximo();
No ultimo = inicio;
No ultimo = null;
No ultimo = inicio.getProximo().getProximo();
No ultimo = inicio; while(ultimo.getProximo() != null) ultimo = ultimo.getProximo();
6
Para remover o último elemento de uma Lista Ligada, o que deve ser feito?
Encontrar o penúltimo elemento, definir seu ponteiro "próximo" como null e atualizar o ponteiro do início da lista.
Encontrar o penúltimo elemento, definir seu ponteiro "próximo" como null e atualizar o ponteiro do último elemento.
Encontrar o último elemento, definir seu ponteiro "próximo" como null e atualizar o ponteiro do início da lista.
Encontrar o último elemento, definir seu ponteiro "próximo" como null e atualizar o ponteiro do último elemento.
Percorrer a lista até encontrar o último elemento e removê-lo.
7
Em quais situações a recursividade é geralmente considerada uma boa escolha?
Quando a função recursiva é fácil de implementar e depurar.
Quando a performance é crítica e o uso de memória é irrelevante.
Quando o código deve ser o mais curto possível, independentemente da legibilidade.
Quando a complexidade do algoritmo é baixa.
Quando a solução do problema é mais intuitiva e natural usando recursividade.
8
Qual o conceito fundamental que garante a finalização de um processo recursivo?
O uso de variáveis globais.
A utilização de uma função auxiliar.
A presença de um laço "while".
A presença de um laço "for".
A condição de parada, que determina quando a recursividade se encerra.
9
Em Java, recursão refere-se ao processo no qual uma função chama a si mesma, direta ou indiretamente, sendo a função correspondente chamada de função recursiva. Usando um algoritmo recursivo, certos problemas podem ser resolvidos com bastante facilidade. Nesse contexto, observe o trecho de código em Java a seguir:
30
28
26
29
27
10
Considere o código Java a seguir: public static int somaRecursiva(int n) { if (n <= 0) { return 0; } else { return n + somaRecursiva(n - 2); } } Qual o resultado da chamada somaRecursiva(7)?
20
16
10
18
14
11
Sobre o código da classe Fila, o método especificamente sobre o método 'remover()', análise as seguintes afirmações, e assinale a alternativa correta: I. 'remover()' copia todos os elementos restantes para a direita após a remoção do elemento da frente. II. O algoritmo do método 'remover()' pode ser ineficiente para filas grandes. III. Seria possível manter um índice para o início da fila e simplesmente mover esse índice após a remoção.
Apenas II está correta
Apenas III está correta
I, II e III estão corretas
Apenas II e III estão corretas
Apenas I está correta
12
Suponha que você criou uma instância da classe Pilha com um limite de tamanho igual a 7. Você executou as seguintes operações na pilha: Empilhou os números 5, 8, 12, 20 e 25. Verificou se a pilha estava cheia (chamou o método cheia()). Desempilhou três elementos. Verificou se a pilha estava vazia (chamou o método vazia()). Empilhou os números 15, 30, 45, 60 e 75. Verificou novamente se a pilha estava cheia. Agora, suponha que você tenta empilhar mais um elemento na pilha. O que acontece?
O elemento é empilhado normalmente.
Um erro é lançado indicando que a pilha está vazia.
Um erro é lançado indicando que a pilha está cheia.
O último elemento empilhado é automaticamente removido para acomodar o novo elemento.
13
Considere o código da classe Pilha apresentado. Avalie as afirmações a seguir: I. A classe Pilha permite o uso de um tamanho dinâmica para a pilha. II. O código da classe Pilha implementa um método para consultar o elemento no topo da pilha sem removê-lo. III. O código da classe Pilha lança exceções personalizadas, como PilhaCheiaException e PilhaVaziaException. Assinale a alternativa correta:
Todas estão incorretas
Apenas II está correta
Apenas III está correta
Apenas I está correta
Apenas I e II estão corretas
14
A pilha é uma estrutura de dados que permite a inserção/remoção de itens dinamicamente seguindo a norma de último a entrar, primeiro a sair. Suponha que para uma estrutura de dados, tipo pilha, são definidos os comandos: • PUSH (p, n): Empilha um número “n” em uma estrutura de dados do tipo pilha “p”; • POP (p): Desempilha o elemento no topo da pilha. Considere que, em uma estrutura de dados tipo pilha “p”, inicialmente vazia, sejam executados os seguintes comandos: PUSH (p, 10) PUSH (p, 5) PUSH (p, 3) PUSH (p, 40) POP (p) PUSH (p, 11) PUSH (p, 4) PUSH (p, 7) POP (p) POP (p) Após a execução dos comandos, o elemento no topo da pilha “p” e a soma dos elementos armazenados na pilha “p” são, respectivamente:
11 e 29.
11 e 80.
4 e 80.
7 e 29.
7 e 40.
15
Qual é a principal vantagem de uma fila circular em relação a uma fila linear (implementada com um array de tamanho fixo)?
A capacidade de acesso direto a qualquer elemento
Uso eficiente de memória
Complexidade de tempo O(n) para operações de inserção/remoção
Uso flexível de memória
16
Considere duas estruturas de dados do tipo pilha, denominadas A e B, com as sequências de valores (11, 33, 22) e (44, 22, 11) respectivamente, em que o elemento mais à direita de cada sequência refere-se ao topo da pilha. Sejam as operações: (i) desempilha(P), que remove um elemento da pilha P e retorna esse elemento; (ii) empilha(P, E), que insere o elemento E na pilha P; e (iii) topo(P), que retorna o elemento que está no topo da pilha P. Após executar a expressão “empilha(B, desempilha(A) + desempilha(A) - desempilha(B) + topo(B))”, a sequência de elementos de B será:
(44, 22, 44)
(44, 22, 55)
(44, 22, 33)
(44, 22, 66)
17
Uma das formas de o gerente de uma agência bancária acompanhar a qualidade dos serviços prestados aos seus clientes é verificar o estado da ordem de atendimento em vários instantes ao longo do expediente. O sistema que a gerência utiliza para tal fim é a estrutura de dados conhecida como FILA, que mostra a situação da ordem de atendimento no instante da verificação. Nesse contexto, implementa-se uma estrutura de FILA de números inteiros com suas duas operações tradicionais: ENFILEIRAR(Z), que ocorre no instante em que um cliente recebe uma senha Z e entra na FILA; e DESENFILEIRAR( ), que ocorre quando um cliente sai da FILA, caso em que DESENFILEIRAR( ) retorna o número da senha. Sabe-se, também, que a representação do estado da FILA em um instante qualquer é realizada listando os elementos, de forma que o primeiro elemento, da esquerda para a direita, é o mais antigo presente na FILA. Nas condições apresentadas, considere uma FILA que começa vazia e realiza as seguintes operações: ENFILEIRAR(8) → ENFILEIRAR(9) → DESENFILEIRAR( ) → ENFILEIRAR(10) → ENFILEIRAR(11) → ENFILEIRAR(DESENFILEIRAR ( )) → ENFILEIRAR(12) → DESENFILEIRAR( ) → ENFILEIRAR(13) → DESENFILEIRAR( ) Após realizar as operações acima, a FILA estará no estado:
9 – 12 – 13
8 – 9 – 10
9 – 10 – 11
8 – 10 – 11
10 – 11 – 12