Buscar

AOL4_PED4_merged

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 236 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 236 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 236 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Ocultar opções de resposta 
Pergunta 1 -- /1
O HashMap é uma estrutura hash diferenciada, pois nela você é obrigado a setar o valor junto com sua 
posição de memória, no entanto ao instanciar um hashmap, deve-se passar via parâtro da declaração a 
tipagem do índice e a tipagem do valor, no caso do exemplo abaixo, o índice é integer e o dado também, 
podendo assumir diversos tipos inclusive um objeto tanto como índice como quanto valor.
Por conta da particularidade da inserção do índice junto com o valor a add, no hashmap não é usado e sim 
o put(indice,valor) para poder alocar, e o uso do constains é diferenciado pois pode-se buscar tanto por 
chave usando a containsKey quanto por valor containsValue.Por este motivo o hashmap é democrático 
pois você pode criar as posições que desejar e assim trazer mais agilidade ao programa caso necessite
Analise a situação a seguir:
import java.util.HashMap;
import java.util.Map;
public class Prj_HashMap {public static void main(String args[]){Map<Integer,Integer> mapa=new 
HashMap<Integer,Integer>();
mapa.put(1, 100);
mapa.put(2, 200); 
System.out.println("remover:"+mapa.remove(2));
System.out.println("contains por chave:"+ mapa.get(1));
System.out.println("contains por chave:"+ mapa.containsKey(1));
System.out.println("contains por valor:"+ mapa.containsValue(100));
for(Integer aux: mapa.keySet() ){System.out.println(aux + "-" + aux.hashCode() + "-"+ mapa.get(aux) );} } 
}
Com base nessas informações e no conteúdo estudado, analise as afirmativas a seguir e identifique qual 
dela(s) corresponde(m) ao padrão iterator na navegação da estrutura Mapa.
I. Integer aux: mapa.keySet()
II. new HashMap<Integer,Integer>();.
III. mapa.
IV. mapa.get(aux).
V. mapa.getClass().
Está correto apenas o que se afirma em:
V e III.
Resposta corretaI e IV.
II e I.
IV e II.
III e IV.
Ocultar opções de resposta 
Pergunta 2 -- /1
A estrutura hash possui um dos melhores desempenhos dentro de uma grande estrutura de dados, pois 
sua notação de big O(1) é uma constante. Ou seja, para N dados, temos apenas um conjunto de instruções 
a se buscar. Porém, com a grande quantidade de dados, surge o problema da colisão, quando dados 
diferentes assumem o mesmo valor de hash. Existem formas de trabalhar o hashing para que isso não 
ocorra, porém, é preciso usar uma outra estrutura de dados para poder considerar um hash repetido de 
dados distintos. Uma das estruturas possíveis é a linkedlist, que faz a alocação do dado repetido ou 
aproximado dentro de um mesmo hash.
Com base nessas informações e no conteúdo estudado, podemos dizer que a técnica utilizada para a 
colisão é:
o load factor.
o new LinkedList.
o linear probing.
Resposta corretao encadeamento separado.
o rerash.
Pergunta 3 -- /1
A busca sequencial é uma das formas mais simples de trabalhar a estrutura de dados. Seu algoritmo 
geralmente é um loop e não possui critérios com relação a busca em si. O que temos é somente uma 
condição para encontrar o dado dentro do algoritmo. Este formato de busca chama-se sequencial, pois 
percorre todos os elementos da estrutura de forma estática e pode ser usado em vetores e matrizes de 
forma dinâmica, percorrendo posições de memória ou retornando endereços de objetos diferentes de nulo.
Analise a situação a seguir:
for(int i=0;i< 5; i++)
for(int j=i+1;j< 10; j++)
Ocultar opções de resposta 
Ocultar opções de resposta 
if( ... )
System.out.println("Dado:"+buscar+" localizado");
Com base nessas informações e no conteúdo estudado, podemos dizer que a alternativa que corresponde 
ao comando IF acima é:
buscar == numeros[j][i].
Resposta corretabuscar == numeros[i][j].
buscar = numeros[i].
buscar = numeros[j].
buscar = numeros[i][j].
Pergunta 4 -- /1
Uma ArrayList é uma estrutura da Api Collection que trabalha com alocação dinâmica, possui aplicação em 
diversas situações e regras de negócio. No caso dos grafos, sua aplicação pode se dar na representação 
da lista de adjacência. A lista de adjacência é um formato de representação de grafo, que recebe do grafo 
um nó e as ligações (ou vizinho) de um nó e os aloca.
Quando se trata da alocação de vizinhos, que pode ser fixa ou variável, a lista encadeada ou uma estrutura 
dinâmica é necessária para poder alocar os vizinhos de um nó.
Com base nessas informações e no conteúdo estudado, podemos dizer que o comando usado para 
adicionar os vizinhos em uma lista de adjacência é:
setAresta (0, new Arrays.asList (ArrayList <> (new Vertice []{new Vertice ("B",1)}))); 
setAresta (0, new Vertice <> ({new Vertice ("B",1)})); 
Resposta correta
setAresta (0, new ArrayList <> (Arrays.asList (new Vertice []{new Vertice 
("B",1)}))); 
setAresta (0, new Arrays.asList (ArrayList <> (new Vertice []{new Array("B",1)}))); 
setAresta (0,1); 
Ocultar opções de resposta 
Pergunta 5 -- /1
O grafo é uma estrutura que contempla vértices e arestas. Sua estrutura não possui topologia ou ordem 
específica de inserção, remoção ou edição, pois um dos objetivos primordiais dos grafos é modelar um 
problema do mundo real. Por esse motivo, diversos tipos de grafos acabam coexistindo, cada um com suas 
características particulares. 
Analise a situação a seguir:
As escalas da higienização de trens de 5 estações têm sido um grande problema para uma empresa de 
prestação de serviços. Foi sugerido que seu sistema corporativo tivesse uma funcionalidade que gerasse 
essas escalas automaticamente, de acordo com as seguintes regras: deve ser em horários de menor 
movimento, todos os vagões de um trem devem estar a 4 estações de igual tempo de distância um do 
outro.
Com base nessas informações e no conteúdo estudado, uma das possibilidades de grafo para modelar 
esse case seria um:
grafo ponderado.
grafo orientado não conectado.
Resposta corretagrafo orientado.
grafo não conectado.
grafo ponderado não conectado.
Pergunta 6 -- /1
As estruturas de dados homogêneas são estruturas que possuem indexação por profundidade, porém com 
apenas uma tipagem. No caso de matrizes e vetores, independentemente do tamanho “N” que possuam, 
eles sempre terão a mesma tipagem.
Ocultar opções de resposta 
Ocultar opções de resposta 
Por isso, existem diversas aplicações para essas estruturas, sendo uma delas na forma computacional de 
manipular um grafo. Na classe grafo, temos os vértices e a matriz de adjacência, que deve ser populada 
para possuir as arestas. Porém, o grafo em si é iniciado ao executar o construtor, pois este define os 
tamanhos da matriz da classe.
Analise a situação a seguir:
class Grafo{private Vertice nos [];private int matriz [] [];
public Grafo (Vertice nosaux []){...}}
Com base nessas informações e no conteúdo estudado, podemos dizer que a linha que corresponde ao 
comando do construtor do código acima é:
nos = nosaux; matriz = new int [10] [10];
nosaux = nosaux; matriz = new int [nosaux.length] [nosaux.length];
nos = nos; matriz = new int [nos.length] [nos.length];
Resposta corretanos = nosaux; matriz = new int [nosaux.length] [nosaux.length];
noaux = nos; matriz = new int [nos.length] [nos.length];
Pergunta 7 -- /1
A pesquisa de dados é um tópico da estrutura de dados que envolve o estudo dos algoritmos para 
sequências numéricas, seja ordenada ou desordenada, em ordem crescente ou decrescente.
Neste aspecto surge, dentro da pesquisa de dados, uma ferramenta chamada análise assintótica, que 
recebe um algoritmo e, pelas próprias instruções, nos fornece uma fórmula matemática para analisar 
graficamente o comportamento deste algoritmo, em seu pior caso, no computador.
Com base nessas informações e no conteúdo estudado, podemos dizer que o melhor algoritmo em 
pesquisa de dados, de acordo com sua fórmula, é:
Resposta corretaO(1).
O(N/2).
O(N ).3
Ocultar opções de resposta 
O(N ).2
O(N).
Pergunta 8 -- /1
Uma das principais aplicações de grafos em um problema de logística é achar o menor caminho para 
várias entregas. No caso, cada ponto de entrega seria um vértice e cada rua, avenida ou caminho, seriam 
as arestas. Porser um problema recorrente em grafos, existem diversos algoritmos para isso. Um deles se 
destaca por ser um dos mais simples para resolver este problema. Trata-se da árvore geradora mínima ou 
MST (Minimum Spanning Tree), que percorre os vizinhos até o fim e verifica se algum deles possui uma 
conectividade com os nós do grafo.
Com base nessas informações e no conteúdo estudado, podemos dizer que o algoritmo usado no MST 
como forma de criar uma árvore geradora mínima é:
lista de adjacência.
BFS ou busca por largura.
Resposta corretaDFS ou busca por profundidade.
matriz de incidência.
matriz de adjacência.
Pergunta 9 -- /1
O hash é uma estrutura de dados que se fundamenta no conceito de hashing, que, resumindo, trata-se de 
uma série de cálculos de dados juntamente com a quantidade de espaços disponíveis em memória. Esta 
técnica é muito utilizada em criptografia de textos, números, dados em geral e até bits. As principais formas 
Ocultar opções de resposta 
Ocultar opções de resposta 
de criptografia provêm de uma variação do hashing que carrega não somente o dado, mas a quantidade de 
bits e constantes (variáveis estáticas), para poder criptografar um dado de forma única.
Analise a situação a seguir:
public static int getHashCode(int valor, int tamanho){ ---------------- return hashcode; }
Com base nessas informações e no conteúdo estudado, podemos dizer que o cálculo do hashing do código 
acima é:
Resposta corretaint hashcode = valor % tamanho;
int hash = valor % tamanho;
int hashcode = valor + tamanho / tamanho;
int hashcode = Math.pow(valor,tamanho);
int hashcode = Math.random() * (valor / tamanho) * 10;
Pergunta 10 -- /1
A fila é uma estrutura de dados homogênea, que tem por objetivo organizar e alocar os elementos da sua 
estrutura na forma de LIFO (Last in First Out), fazendo com que o primeiro a ser inserido seja removido. 
Sua função nos grafos se encontra dentro da busca por largura, removendo o nó visitado e buscando 
primeiro seus vizinhos em nível, assim, adicionando os vizinhos até chegar nos nós finais.
Analise a situação a seguir:
A-B-C-D
A-E
A-F-G-H
Com base nessas informações e no conteúdo estudado, podemos dizer que o uso da fila em BFS, nesse 
caso, é:
Resposta corretaB-E-F, C-G, D-H.
D-H, C-G, B-E-F.
B-C-D, E, F-G-H.
B-C-D, F-G-H, E.
B-E-F, D-H, C-G.
Conteúdo do exercício
Ocultar opções de resposta 
Pergunta 1 -- /1
As árvores dinâmicas são estruturas que organizam de forma hierárquica os dados. Existem muitas formas de 
representá-los: as que representam desenhos geralmente são mais simples de entender, porém mais difíceis de 
demonstrar em consoles de programas.
Observe a figura abaixo:
Com base nessas informações e no conteúdo estudado, determine o nome da representação da árvore na 
figura:
ESTRUTURA DE DADOS-unid03-Q4_v1.PNG
Representação encadeada
Parênteses aninhados
Nó
Hierárquica
Resposta corretaDiagrama de inclusão
Pergunta 2 -- /1
Ocultar opções de resposta 
A árvore é uma estrutura que é composta de node e suas ligações, porém sua organização e forma de utilização 
dependem do algoritmo escolhido, pois, utilizando uma árvore binária, os nós poderão possuir somente dois 
filhos e, dependendo das regras de balanceamento a cada nó inserido, ocorrerá o realinhamento de todos os 
nós. A árvore, diferente das demais estruturas, possui diversas propriedades, conceitos e terminologias que não 
se aplicam a outras estruturas.
Considerando essas informações e o conteúdo estudado, analise as afirmativas a seguir e assinale V para a(s) 
verdadeira(s) e F para a(s) falsa(s):
I. ( ) Node é uma estrutura referenciável que armazena valores dentro de uma árvore.
II. ( ) Cada Node possui apenas um Pai.
III. ( ) Cada Node pode possuir vários “irmãos”.
IV. ( ) Cada Node poderá ter dois antecessores.
Agora, assinale a alternativa que apresenta a sequência correta:
Resposta corretaV, V, V, F
V, V, F, V
V, V, F, F
V, V, F, V
V, F, V, V
Pergunta 3 -- /1
Muitos elementos em várias estruturas possuem formas de ligação, como uma página web com âncoras ou links 
que apontam para outra página web. Um vetor aponta para seu próximo a partir do seu tamanho máximo e, em 
outra estrutura, é chamada de grafo com as arestas.
 
Ocultar opções de resposta 
Ocultar opções de resposta 
Com base nessas informações e no conteúdo estudado, é correto afirmar que, dentro de uma estrutura de 
árvore binária, o termo para ligação de elementos em seu conjunto é:
Incorreta: interligação
hyperlink
 link
topologia
Resposta corretaarco
Pergunta 4 -- /1
As árvores dinâmicas são estruturas que organizam de forma hierárquica os dados. Existem muitas formas de 
representá-los: as que representam desenhos geralmente são mais simples de entender, porém mais difíceis de 
demonstrar em consoles de programas.
Observe a figura abaixo:
Com base nessas informações e no conteúdo estudado, determine o nome da representação da árvore na 
figura:
ESTRUTURA DE DADOS-unid03-Q4_v1.PNG
Parênteses aninhados
Representação encadeada
Nó
Resposta corretaDiagrama de inclusão
Hierárquica
Ocultar opções de resposta 
Pergunta 5 -- /1
A Fila Dinâmica da interface Queue possui muitas similaridades com as estruturas dinâmicas de 
armazenamento. A função buscar recebe o valor do tipo da fila via argumento e faz uma varredura dentro da 
estrutura de Fila, procurando o valor recebido. Caso encontre o valor, ela o imprime na tela “Encontrado:” o valor 
e retorna true, fornecendo que foi encontrado o valor; caso contrário, aparecerá “Não Encontrado:” o valor e 
retorna-se false.
Agora, leia o código-fonte abaixo:
public boolean buscar(int aux) {
Iterator<Integer> filaIterator = fila.iterator();
while( filaIterator.hasNext())
{
if( ________________ )
{
System.out.println("Encontrado");
return true;
}
}
System.out.println("Não Encontrado:"+aux);
return false;
 }
Com base nessas informações e no conteúdo estudado, assinale a alternativa que completa o comando IF do 
código acima:
aux == fila.next()
filaIterator.next() != null
Incorreta: filaIterator.next()
aux != null
Resposta corretafilaIterator.next()==aux
Ocultar opções de resposta 
Pergunta 6 -- /1
As árvores são estruturas que em si são simples: possuem raiz, pais e filhos. O que diferencia uma árvore da 
outra é seu formato de trabalho ao inserir nós, suas regras primordiais para que a considere balanceada ou 
formas de balanceá-la. Cada árvore geralmente tem o nome de uma das suas regras, como, por exemplo, a 
árvore binária que só pode ter 2 filhos, a árvore rubro-negra que insere atributo cor nos nodes para que haja 
balanceamento etc.
As árvores do tipo 2-3, por exemplo, são árvores diferenciadas que implementam o formato binário, e em alguns 
casos conseguem ser mais velozes que as demais árvores.
Considerando essas informações e o conteúdo estudado, analise as afirmativas a seguir sobre a árvore do tipo 
2-3 e assinale V para a(s) verdadeira(s) e F para a(s) falsa(s).
I. ( ) possui um pai com um único valor chave.
 
II. ( ) não possui no máximo dois irmãos.
III. ( ) não possui apenas um valor na chave.
IV. ( ) possui dois pais com dois valores chaves.
Agora, assinale a alternativa que apresenta a sequência correta:
F, V, V, V
Resposta corretaF, V, V, F
V, F, V, F
V, V, V, V
V, F, F, V
Pergunta 7 -- /1
Ocultar opções de resposta 
Ocultar opções de resposta 
Dentro da estrutura de árvores, os nós terminais são extremamente importantes, pois definem o limite da 
estrutura. Da mesma forma que a raiz inicia a ligação entre todos os elementos, o nó terminal finaliza a busca ou 
percurso.
Com base nessas informações e no conteúdo estudado, é correto afirmar que são os elementos terminais dessa 
árvore:
ESTRUTURA DE DADOS-UNID03-Q19_v1.PNG
4, 5, 6
1, 2 e 3
1, 2, 3, 4, 5, 6 e null
Resposta correta4, 5, 6 e null
3, 4, 5, 6, e null
Pergunta 8 -- /1
A Fila é um formato de armazenamento ou organização humana que tem por objetivo organizar itens de forma 
que o primeiro a serorganizado ou “enfileirado” é o primeiro a sair da organização.
Considerando essas informações e o conteúdo estudado, é correto afirmar que esse formato de organização é 
conhecido como:
FILA
LEFO
FEFO
Resposta corretaFIFO
Ocultar opções de resposta 
LIFO
Pergunta 9 -- /1
Em uma estrutura de árvore, os elementos devem estar interligados, de forma que, a partir de um elemento, 
consegue-se chegar em qualquer elemento da estrutura. As navegações de elementos ocorrem em diversas 
sequências, como pré-ordem, in-ordem e pós-ordem.
Observe a árvore T abaixo:
Com base nessas informações e no conteúdo estudado, assinale a alternativa que contém os percursos em 
árvore através dos quais se chega mais rápido ao elemento 16:
ESTRUTURA DE DADOS-UNID03-Q10_v1.PNG
in-ordem e pós-ordem
pré-ordem e in-ordem
pré-ordem
Resposta corretapós-ordem
in-ordem
Pergunta 10 -- /1
A estrutura de árvore de representação encadeada demonstra um espaço entre os endereços dos filhos da 
direita e da esquerda e uma simbologia para os Nós nulos dos nós folhas ou folhas.
Ocultar opções de resposta 
Observando a árvore acima e considerando o conteúdo estudado, identifique os valores da altura, grau da 
árvore e grau de saída de 16:
ESTRUTURA DE DADOS-UNID03-Q16_v1.PNG
altura:3, grau da árvore: 2 e grau de saída: 1
altura:1, grau da árvore: 2 e grau de saída: 3
altura: 0, grau da árvore: 2 e grau de saída:3
altura:3, grau da árvore: 1 e grau de saída: 2
altura: 3, grau da árvore: 2 e grau de saída: 0
Conteúdo do exercício
Ocultar opções de resposta 
Pergunta 1 -- /1
Antes de adicionar elementos à Lista Duplamente Ligada, deve-se, primeiramente, saber em qual 
extremidade serão inseridos esses elementos. Caso sejam inseridos no início da lista, é preciso haver uma 
instrução diferente do último item da lista.
 
Com base nessas informações e no conteúdo estudado, pode-se afirmar que correspondem à inserção na 
última extremidade da Lista Ligada:
 
I. primeiroNode = ultimoNode = new Node(valor, null,null);
II. primeiroNode = new Node(valor, primeiroNode,null);
III. ultimoNode.setProximo( new Node(valor, null,ultimoNode));
IV. ultimoNode = ultimoNode.getProximo();
 
Está correto apenas o que se afirma em:
II e III
I e II
I, II e IV
Resposta corretaIII e IV
I, II e III
Ocultar opções de resposta 
Pergunta 2 -- /1
Ao entrar em uma estrutura da API Collection nas estruturas sequenciais, consegue-se navegar por IDs. 
Quando se tem as estruturas de conjuntos e mapas, elas navegam via for-each, a partir do padrão de 
projeto iterator.
 
Considerando uma LinkedList de nome “lista do tipo int.”, a instrução de navegação com o iterator em uma 
LinkedList nesde formato é:
for(int i=0;i< lista.length; i++){ System.out.println( lista[i]);}
int i=0;do{ System.out.println( lista[i]); i++;} while(i< lista.length);
for-each(lista){ System.out.println( lista[i]);}
int i=0; while(i< lista.length){ System.out.println( lista[i]); i++;}
Resposta corretafor(int x: lista){ System.out.println( x);}
Pergunta 3 -- /1
A ordenação está presente em diversas linguagens de programação e é um dos tópicos de Estrutura de 
Dados, que visa ordenar dados desordenados. Existem muitos algoritmos para ordenação de dados, e 
esses algoritmos se comportam de maneiras diferentes: há algoritmos que utilizam recursão, funções, 
loops e buscas. 
 
Assim, e considerando os conteúdos estudados no livro da disciplina, analise as afirmativas a seguir sobre 
as características dos métodos de ordenação de algoritmos. 
 
I. O tempo é importante para a ordenação. 
II. A ordenação pode conter troca de dados. 
III. Alguns algoritmos usam recursão, enquanto outros usam somente loops, ou a mescla entre eles. 
IV. O uso de objeto Collection é padrão para todas as linguagens. 
 
Ocultar opções de resposta 
Ocultar opções de resposta 
Está correto apenas o que se afirma em: 
I, II e IV
I e IV
I, III e IV
Resposta corretaI, II e III
II, III e IV
Pergunta 4 -- /1
A Pilha em formato de alocação estática implementa fortemente o vetor, trazendo suas características. De 
forma geral, os métodos que são acessados, tanto na alocação estática, quanto na dinâmica, possuem o 
mesmo nome e fornecem o mesmo resultado. A diferença se dá na sua estrutura.
Observe o código da função peek ou topo a seguir:
 
public class Pilha {
 private int vetorPilha[];
 private int topo;
public int peek() {
 // COMANDO
 ________________________ 
 }
...
}
Considerando essas informações e seus conhecimentos sobre a alocação estática da Pilha, pode-se 
afirmar que o código que completa a função peek ou topo é:
return vetorPilha[topo--];
return (topo == vetorPilha.length - 1);
Resposta corretareturn vetorPilha[topo];
Ocultar opções de resposta 
 pilha.push();
vetorPilha = new int[max];
Pergunta 5 -- /1
A TAD (Tipo Abstrato de Dados) Pilha é uma variação da Lista Linear que possui características 
semelhantes a uma pilha do mundo real, armazenando os valores inseridos no formato de LIFO – Last In 
First Out (O último que entra é o primeiro a sair).
 
Analise a sequência a seguir:
 
Pilha p=new Pilha();
p.push(“A”);
p.push(“D”);
p.push(“Ô);
p.push(“O”);
p.pop( );
p. pop( );
p. pop( );
 
Com base nessas informações e no conteúdo estudado, pode-se afirmar que o estado da Pilha, ao final 
das operações apresentadas na sequência, será:
Resposta corretap [ A ]
p [ Ã , O]
p [ O ]
p [ A, D ]
p [ null ]
Ocultar opções de resposta 
Pergunta 6 -- /1
O percurso em um Nó é feito sempre pelo seu atributo próximo, independente da sua topologia ou 
interligações, de acordo com uma varredura em uma Lista Ligada, na qual um elemento referencia outro.
Leia o código a seguir:
 
No aux=primeiroNo ;
while ( aux !=null ) 
aux= aux.getProximo(); 
 
Assim, e considerando os conteúdos estudados no livro da disciplina, analise as afirmativas a seguir sobre 
o percurso de um Nó. 
 
I. No aux é o último Nó. 
II. O null representa o último Nó. 
III. No aux é o primeiro Nó. 
IV. Esses comandos executam erro. 
V. Esses comandos não executam erro.
Está correto apenas o que se afirma em:
I, III e IV
Resposta corretaII, III e V
I, II e V
II, III e IV
I, II e IV
Pergunta 7 -- /1
Ocultar opções de resposta 
Ocultar opções de resposta 
Algumas técnicas de programação são necessárias para que uma determinada lógica possa ser 
executada. De forma geral, a lógica de programação utiliza as condições, os loops e funções para poder 
executar quase todos os algoritmos. 
Há também uma técnica na programação que permite ao programa criar funções que se auto referenciam, 
passando argumentos que façam com que a função tenha um critério de parada. Isso ocorre para que 
possa ser finalizado o ciclo de chamadas pois, caso contrário, ele se transforma em um ciclo sem fim, 
tornando–se um loop infinito. 
 
De acordo com as informações apresentadas no texto base, é possível afirmar que o conceito descrito se 
chama:
sobrecarga
contador
Resposta correta recursão
critério de parada
laços de repetição
Pergunta 8 -- /1
Uma Pilha de alocação estática possui em sua propriedade uma função, que verifica se seus espaços 
estão alocados ou não. Esse método, por ser tratar de uma função booleana, retornará true para todos 
alocados e false para espaço ou espaços em branco. Implementando vetor, a alocação estática tem a 
vantagem de poder tratar os elementos de forma indexada, fazendo seu acesso ser mais veloz. No formato 
veloz, por outro lado, não tem essa possibilidade, e deve-se navegar nos elementos para acesso.
 
De acordo com a alocação estática na estrutura Pilha, é possível afirmar que o nome da função que possui 
essas características é:
 peek()
isEmpty()
Ocultar opções de resposta 
Resposta corretaisFull()
pop()
 search()
Pergunta 9 -- /1
A Lista Ligada e Duplamente Ligada possui a função isEmpty(), uma função cuja convenção mundial de 
programadores determina que é uma nomenclatura que significa, literalmente, “está Limpa ?”. Nesse caso, 
ela retorna true para sim,e false para não, considerando que “limpa” ou “não limpa” determina se ela está 
cheia. No caso da isEmpty, por representar um atributo booleano, é a única exceção, dentro da 
programação orientada a objetos, que não utiliza geter’s e seter’s no encapsulamento.
 
Agora analise o código da função a seguir, sabendo que primeiroNo é uma classe Node.
 
 public boolean isEmpty() {
 return primeiroNo;
 }
 
A partir dessas informações e dos conteúdos estudados, analise as alternativas a seguir sobre o código 
acima.
I. A linha do return poderia ser substituída por (primeiroNo == null) ? true : false.
II. O objeto primeiroNo é uma instância da classe Lista.
III. O tipo de retorno de isEmpty() está de acordo com o tipo do valor que armazena a estrutura.
IV. O objeto primeiroNo representa a ocorrência de algum nó na estrutura.
V. A função retorna a quantidade de elementos da estrutura.
Resposta corretaI e IV
III e IV
I e II
IV e V
I e V
Ocultar opções de resposta 
Pergunta 10 -- /1
Para imprimir os valores da lista ligada, é necessário fazer um LOOP dentro da primeira estrutura até a 
última, entrando em um Nó especifico. Por meio da referência do próximo, navega-se até a última 
referência, que é o null, através do método getProximo().
Considerando o texto-base e os conteúdos estudados, é correto afirmar que o nó específico utilizado para 
navegar em toda a estrutura é:
No
Resposta corretaprimeiroNo
ultimoNo
meioNo
getProximo()
Conteúdo do exercício
Ocultar opções de resposta 
Pergunta 1 -- /1
Em geral, os programas contêm dados armazenados que podem corresponder a tipos diversos de acordo 
com a necessidade. Sendo assim, cada dado possui um formato e uma regra específica, considerando o 
que será alocado em memória. Nesse caso, são pensados que tipo de caracteres, letras e números podem 
ser usados na classificação Cadeia. Para dados que podem assumir apenas dois valores, como por 
exemplo “Verdadeiro” e “Falso”, o tipo mais utilizado é o Lógico.
A partir das informações trazidas no texto-base, afirma-se que um cadastro de dados envolvendo números 
flutuantes ou fracionados terá como classificação de variável e dado o termo:
Bit
Inteiro
Cadeia
Resposta corretaReal
Lógico
Pergunta 2 -- /1
Ocultar opções de resposta 
A sintaxe (conjunto de regras e padrões de uma linguagem) do Java é baseada em um padrão de 
linguagens de programação e script chamado ECMA 262, um padrão que outras linguagens utilizam. O 
ECMA opera de maneira similar ao modo como um ISO ou W3C definem normas e regras. Embora tenha 
esse padrão em algumas plataformas, ele pode ser programado de maneira individual, como no uso de 
uma API específico do Sistema Operacional Microsoft Windows ou Linux. Nesse caso, mesmo estando no 
padrão ECMA, deve-se obedecer a plataforma que está sendo usada. Para uma declaração de variável, 
sua instrução é padrão e deve seguir uma sequência específica na ordem: String nome = “Josué” ;
Considerando essas informações e o conteúdo estudado, ordene as etapas a seguir:
( ) É o tipo primitivo da linguagem.
( ) É o identificador da variável ou nome da variável.
( ) Símbolo de atribuição.
( ) Valor a ser atribuído na variável idade.
( ) Delimitador, ou seja, o final da instrução.
Agora, assinale a alternativa que apresenta a sequência correta:
5, 4, 3, 2, 1
Resposta correta1, 2, 3, 4, 5
5, 4, 3, 1, 2
1, 5, 2, 4, 3
1, 2, 3, 5, 4
Pergunta 3 -- /1
A linguagem Java é uma das principais linguagens utilizadas comercialmente, e seu formato possui 
características que facilitam a programação, fazendo com que ela seja multiplataforma e utilizada em mais 
de 3 bilhões de dispositivos no mundo. Ainda que seja uma linguagem utilizada em diversas organizações, 
ela possui padrões, como toda linguagem. No caso específico de Java, seu padrão orientado a objetos traz 
propriedades de herança, polimorfismo e encapsulamento.
Considerando essas informações e o conteúdo estudado, podemos afirmar que a forma correta do código-
fonte do Objeto que implementa encapsulamento é:
Ocultar opções de resposta 
Ocultar opções de resposta 
class Obj{ private int y; public void setX(int aux){x=aux;}
public int getX(){return x;} }
Resposta correta
class Obj{ private int x; public void int setX(int aux){this.x=aux;}
public getX(){return x;}
class Obj{ private x;}
class Obj{ private int x; public void setX(int aux){x=aux;}
public int getX(){return x;}
Pergunta 4 -- /1
Em Java, uma Collection é uma API que contém diversos objetos que podem ser usados, tais como Pilha, 
Fila, Árvore, Arrays e Mapas. Embora todas essas estruturas contenham alguns comportamentos padrões, 
como add, remove, contains, cada uma funciona de maneira diferente. Os Maps contêm complexidades 
diferenciadas dos demais, pois requerem uma chave (key) para poder trabalhar qualquer operação.
Considerando essas informações e o conteúdo estudado, podemos afirmar que o pacote correspondente 
ao import da Collection dentro do Java é:
java.io
Resposta corretajava.util
java.swing
java.lang
java.awt
Ocultar opções de resposta 
Pergunta 5 -- /1
Uma classe em POO é um conjunto de instruções que primeiramente são abstraídas do mundo real. Uma 
situação como a primeira aula de uma escola, por exemplo, pode ser nomeada como AulaPrimeira, 
PrimeiraAula ou Aula1 em uma classe a partir de um primeiro contato com programação. Conforme se 
aprofunda em POO, torna-se possível transformar a nomenclatura para vetor de Aula ou para uma 
Collection de Aula em vez de usar Aula1. De acordo com essa abstração de aula, veja o código abaixo.
public <comando1> < comando2> {
< comando3> static < comando4> < comando5> (String []args)
{
 //comandos
 }
}
A partir das informações contidas no texto-base, a ordem das palavras a serem inseridas no código que 
descreve a abstração de aula é:
public class void main Aula1
Resposta corretaclass Aula1 public void main
class public void main Aula1
public void main class Aula1
class public void main Aula1
Pergunta 6 -- /1
As linguagens orientadas a objetos, como Java, possuem instruções que buscam simular aspectos da vida 
real, transformando cada item em entidades computáveis nas quais são denominadas classes. Essas 
entidades possuem ações que na programação chamamos de funções ou métodos, além de propriedades 
denominadas de atributos ou variáveis, mas que, na memória, transformam-se em conjunto de instruções.
Ocultar opções de resposta 
Considerando uma sintaxe simples, com uma apresentação na tela da palavra “Teste!”, pode-se afirmar 
que o método iniciado ao executar a classe e apresentar essa palavra é:
Resposta corretamain
init
begin
start
Mai
Pergunta 7 -- /1
O tipo de dado colocado em uma estrutura é o que pode definir todo o algoritmo em termos de velocidade 
no processador. Dependendo do dado a ser trabalhado, no entanto, não há muitas possibilidades de 
escolha. A Cadeia, por exemplo, é usada para armazenar letras e caracteres especiais, e não há substituto 
para ela em situações nas quais se deve armazenar nomes, palavras ou letras. Esse tipo de dado, porém, 
é naturalmente mais lento, considerando que para o computador formar cada letra é necessário que ele 
faça um conjunto de cálculos.
A escolha do tipo de dado em uma estrutura leva em consideração alguns aspectos. Tendo isso em vista, 
associe cada aspecto abaixo a seu correspondente.
1) Identificador.
2) Tipo de armazenamento.
3) Velocidade em inserir dados.
4) Algoritmo de ordenação e localização de dados.
( ) O nome pelo qual a estrutura será identificada geralmente possui ligação com sua aplicação do mundo 
real.
( ) Se serão armazenados números, letras, valores lógicos etc.
( ) Velocidade medida geralmente em milissegundos, podendo variar dependendo do tipo de estrutura 
escolhida.
( ) Existem muitos algoritmos específicos para cada tipo de estrutura, que dependem da sua aplicação. 
Embora, às vezes, estruturas demorem mais em ordenar, elas também podem ser mais velozes em 
localizar os dados.
Agora, assinalea alternativa que apresenta a sequência correta:
Ocultar opções de resposta 
Ocultar opções de resposta 
Resposta correta1, 2, 3, 4
2, 1, 4, 3
4, 3, 2, 1
4, 3, 1, 2
1, 2, 4, 3
Pergunta 8 -- /1
O vetor é uma das estruturas mais simples de se utilizar para armazenamento de dados. Porém, em 
contrapartida, para uma comparação ou busca de seus elementos deve-se verificar todos os itens nele 
armazenados. Para verificar todos os itens utiliza-se a navegação, termo da computação que busca entrar 
em uma estrutura de dados e mostrar seus itens. Para navegar em uma estrutura vetorial utiliza-se o loop, 
pois se trata de um elemento que contém um início e um fim. Observe o exemplo:
for(int cont=0;cont <=10;cont++)
{
vet[cont]=cont+1;
System.out.println(vet[i]);
}
Considerando as informações do texto-base e o conteúdo estudado, podemos afirmar que, ao executar o 
loop acima, o que ocorrerá com o vetor na posição 3 quando a variável cont estiver com valor 3 é:
vet[3] = 0
Resposta corretavet[3] = 4
vet[3] = 1
vet[3] = null
vet[3] = 3
Ocultar opções de resposta 
Pergunta 9 -- /1
Dados, informação e conhecimento possuem, na computação, aspectos diferentes que podem fazer com 
que uma estrutura possa se comportar de maneira diferenciada dependendo da forma. Por exemplo: o 
dado é a menor partícula da computação e trabalha desde o binário até formar uma letra ou palavra. Após 
concluída essa etapa, organiza-se um conjunto de dados para formar uma informação que a partir de uma 
frase ou um parágrafo. O conhecimento é o cruzamento e relação entre diferentes frases, parágrafos e 
palavras.
Veja os exemplos abaixo:
1- “José” – 123 – 00FF33
2- 3.141516 – true - false
3- “Há dez anos, no mês de janeiro, chove a partir de 5 centímetros neste alqueire de Saint Petersburg.”
Considerando o texto-base, os exemplos listados de 1 a 3 acima podem ser classificados, respectivamente, 
como:
Resposta corretadado, dado e conhecimento
dado, dado e informação
informação, informação e conhecimento
informação, dado e conhecimento
dado, informação e conhecimento
Pergunta 10 -- /1
Leia o trecho a seguir:
Ocultar opções de resposta 
“A média de um conjunto de valores numéricos é calculada somando-se todos estes valores e dividindo-se 
o resultado pelo número de elementos somados, que é igual ao número de elementos do conjunto, ou seja, 
a média de n números é sua soma dividida por n.”
Fonte: Só Matemática. Média aritmética simples. 2019.Disponível em 
<https://www.somatematica.com.br/fundam/medias.php>. Acesso em: abr. 2019. 
De acordo com a definição de média, observe abaixo um exemplo de algoritmo que recebe dois valores e 
fornece sua média:
Algoritmo Media
Declarações
 n1,n2,Media: Real
INICIO
 Leia (n1)
 Leia (n2)
 Media< - ???????????
 Escreva( Media)
FIM
Considerando o algoritmo acima, a instrução correspondente à média aritmética para a variável Média é:
Media <- n1 + n2 / 2
Media <- n1 + n2 * 2
Media <- (n1 + n2 ) * 2
Resposta corretaMedia<- (n1 + n2 ) / 2
Media<- (n1 *1 + n2*1)
Ocultar opções de resposta 
Pergunta 1 -- /1
O HashMap é uma estrutura hash diferenciada, pois nela você é obrigado a setar o valor junto com sua posição 
de memória, no entanto ao instanciar um hashmap, deve-se passar via parâtro da declaração a tipagem do 
índice e a tipagem do valor, no caso do exemplo abaixo, o índice é integer e o dado também, podendo assumir 
diversos tipos inclusive um objeto tanto como índice como quanto valor.
Por conta da particularidade da inserção do índice junto com o valor a add, no hashmap não é usado e sim o 
put(indice,valor) para poder alocar, e o uso do constains é diferenciado pois pode-se buscar tanto por chave 
usando a containsKey quanto por valor containsValue.Por este motivo o hashmap é democrático pois você pode 
criar as posições que desejar e assim trazer mais agilidade ao programa caso necessite
Analise a situação a seguir:
import java.util.HashMap;
import java.util.Map;
public class Prj_HashMap {public static void main(String args[]){Map<Integer,Integer> mapa=new 
HashMap<Integer,Integer>();
mapa.put(1, 100);
mapa.put(2, 200); 
System.out.println("remover:"+mapa.remove(2));
System.out.println("contains por chave:"+ mapa.get(1));
System.out.println("contains por chave:"+ mapa.containsKey(1));
System.out.println("contains por valor:"+ mapa.containsValue(100));
for(Integer aux: mapa.keySet() ){System.out.println(aux + "-" + aux.hashCode() + "-"+ mapa.get(aux) );} } }
Com base nessas informações e no conteúdo estudado, analise as afirmativas a seguir e identifique qual dela(s) 
corresponde(m) ao padrão iterator na navegação da estrutura Mapa.
I. Integer aux: mapa.keySet()
II. new HashMap<Integer,Integer>();.
III. mapa.
IV. mapa.get(aux).
V. mapa.getClass().
Está correto apenas o que se afirma em:
II e I.
V e III.
III e IV.
Resposta corretaI e IV.
IV e II.
Ocultar opções de resposta 
Ocultar opções de resposta 
Pergunta 2 -- /1
Uma das principais aplicações de grafos em um problema de logística é achar o menor caminho para várias 
entregas. No caso, cada ponto de entrega seria um vértice e cada rua, avenida ou caminho, seriam as arestas. 
Por ser um problema recorrente em grafos, existem diversos algoritmos para isso. Um deles se destaca por ser 
um dos mais simples para resolver este problema. Trata-se da árvore geradora mínima ou MST (Minimum 
Spanning Tree), que percorre os vizinhos até o fim e verifica se algum deles possui uma conectividade com os 
nós do grafo.
Com base nessas informações e no conteúdo estudado, podemos dizer que o algoritmo usado no MST como 
forma de criar uma árvore geradora mínima é:
matriz de adjacência.
lista de adjacência.
matriz de incidência.
Resposta corretaDFS ou busca por profundidade.
BFS ou busca por largura.
Pergunta 3 -- /1
A função hash tem como objetivo tratar os dados como posição de memória. Sendo assim, um dado que não 
tenha comparações, possuirá apenas uma operação para busca em N dados. Essa função é muito utilizada em 
dicionários de palavras e outras coisas que precisam analisar muitos dados. Ao utilizar o hash na linguagem 
Java, cada variável ou objeto possuirá uma posição específica, pois essa numeração surge dos cálculos da JVM 
(Java Virtual Machine). 
Com base nessas informações e no conteúdo estudado, podemos dizer que a função para pegar o valor hash de
um Objeto Pilha com a tipagem Integer da classe Stack é:
new Stack<Integer>.hashCode();
Ocultar opções de resposta 
Resposta corretanew Stack<Integer>().hashCode();
new Stack<Integer>().toHashCode();
new Stack<Integer>().toHash();
new Stack().hashCode();
Pergunta 4 -- /1
O hash é uma estrutura de dados que se fundamenta no conceito de hashing, que, resumindo, trata-se de uma 
série de cálculos de dados juntamente com a quantidade de espaços disponíveis em memória. Esta técnica é 
muito utilizada em criptografia de textos, números, dados em geral e até bits. As principais formas de criptografia 
provêm de uma variação do hashing que carrega não somente o dado, mas a quantidade de bits e constantes 
(variáveis estáticas), para poder criptografar um dado de forma única.
Analise a situação a seguir:
public static int getHashCode(int valor, int tamanho){ ---------------- return hashcode; }
Com base nessas informações e no conteúdo estudado, podemos dizer que o cálculo do hashing do código 
acima é:
int hashcode = Math.pow(valor,tamanho);
Resposta corretaint hashcode = valor % tamanho;
int hashcode = Math.random() * (valor / tamanho) * 10;
int hash = valor % tamanho;
int hashcode = valor + tamanho / tamanho;
Pergunta 5 -- /1
Ocultar opções de resposta 
Ocultar opções de resposta 
O grafo é uma estrutura que contempla vértices e arestas. Sua estrutura não possui topologia ou ordem 
específica de inserção, remoção ou edição, pois um dos objetivos primordiais dos grafos é modelar um problema 
do mundo real. Por esse motivo, diversos tipos de grafos acabam coexistindo, cada um com suas característicasparticulares. 
Analise a situação a seguir:
As escalas da higienização de trens de 5 estações têm sido um grande problema para uma empresa de 
prestação de serviços. Foi sugerido que seu sistema corporativo tivesse uma funcionalidade que gerasse essas 
escalas automaticamente, de acordo com as seguintes regras: deve ser em horários de menor movimento, todos 
os vagões de um trem devem estar a 4 estações de igual tempo de distância um do outro.
Com base nessas informações e no conteúdo estudado, uma das possibilidades de grafo para modelar esse 
case seria um:
grafo ponderado.
grafo orientado não conectado.
grafo ponderado não conectado.
grafo não conectado.
Resposta corretagrafo orientado.
Pergunta 6 -- /1
A busca por profundidade no grafo é uma das principais que podem ser executadas. Ela necessita da matriz de 
adjacência para poder percorrer os vértices. A busca por profundidade é conhecida por percorrer até o último 
vizinho de um vértice por vez, ou seja, percorre todo o caminho até o final de um vizinho, vai para o próximo e 
segue até o fim.
Analise a situação a seguir:
Com base nessas informações e no conteúdo estudado, podemos dizer que o comando que retorna o resultado 
da busca DFS em A é:
ESTRUT DADOS QUEST 08 UNID 4_v1.PNG
Ocultar opções de resposta 
Resposta corretaB-C-E 
B-E-D
B-D-E 
E-C-D
B-C-D 
Pergunta 7 -- /1
Existem muitas formas de navegação dentro de um grafo. Uma das mais comuns é a matriz de adjacência, uma 
matriz que possui o mesmo número de linhas e de colunas – ou seja, quadrada – e sua quantidade de 
elementos, tanto linhas quanto colunas, é o total de vértices do grafo. Nesse sentido, toda matriz de adjacência 
sempre será bidimensional.
Essa é uma das principais formas de visualização de grafos dentro dos algoritmos, onde estes recebem a matriz 
e fazem o processamento pelas ligações dos vértices.
Analise a situação a seguir:
Com base nessas informações e no conteúdo estudado, dizemos que o grafo que corresponde a essa matriz é:
ESTRUT DADOS QUEST 04 UNID 4_v1.PNG
Resposta corretaF-X-G.
X-F-G.
F-X e G isolado.
F-G-X.
G-F-X.
P t 8 /1
Ocultar opções de resposta 
Ocultar opções de resposta 
Pergunta 8 -- /1
Uma ArrayList é uma estrutura da Api Collection que trabalha com alocação dinâmica, possui aplicação em 
diversas situações e regras de negócio. No caso dos grafos, sua aplicação pode se dar na representação da 
lista de adjacência. A lista de adjacência é um formato de representação de grafo, que recebe do grafo um nó e 
as ligações (ou vizinho) de um nó e os aloca.
Quando se trata da alocação de vizinhos, que pode ser fixa ou variável, a lista encadeada ou uma estrutura 
dinâmica é necessária para poder alocar os vizinhos de um nó.
Com base nessas informações e no conteúdo estudado, podemos dizer que o comando usado para adicionar os 
vizinhos em uma lista de adjacência é:
Resposta corretasetAresta (0, new ArrayList <> (Arrays.asList (new Vertice []{new Vertice ("B",1)}))); 
setAresta (0,1); 
setAresta (0, new Vertice <> ({new Vertice ("B",1)})); 
setAresta (0, new Arrays.asList (ArrayList <> (new Vertice []{new Vertice ("B",1)}))); 
setAresta (0, new Arrays.asList (ArrayList <> (new Vertice []{new Array("B",1)}))); 
Pergunta 9 -- /1
Uma das formas de navegar no grafo é através da lista de adjacência, que possui dois atributos: o vértice e a 
lista de vizinhos. Em vez de armazenar as arestas, armazena os vizinhos.
Uma das vantagens da lista de adjacência é que ela não utiliza uma matriz como base e, portanto, pode ter 
tamanho indefinido.
Analise a situação a seguir:
public ArrayList buscarVizinhos (Vertice noaux){returnnew ArrayList <> (arestas [noaux.getIndice () ]);}
No código-fonte acima, há uma criação estática, ou seja, com quantidades fixas de vértices. Foi utilizado um 
vetor de arestas para poder alocar os vizinhos. Com base nessas informações e no conteúdo estudado, 
podemos dizer que o comando utilizado para buscar o vizinho de um nó é:
Ocultar opções de resposta 
buscarVizinhos (1); 
buscarVizinhos (new Aresta (1));
Resposta corretabuscarVizinhos (new Vertice ("A",1)); 
buscarVizinhos (new Grafo (1));
buscarVizinhos (new int [1] [1]); 
Pergunta 10 -- /1
A busca sequencial é uma das formas mais simples de trabalhar a estrutura de dados. Seu algoritmo geralmente 
é um loop e não possui critérios com relação a busca em si. O que temos é somente uma condição para 
encontrar o dado dentro do algoritmo. Este formato de busca chama-se sequencial, pois percorre todos os 
elementos da estrutura de forma estática e pode ser usado em vetores e matrizes de forma dinâmica, 
percorrendo posições de memória ou retornando endereços de objetos diferentes de nulo.
Analise a situação a seguir:
for(int i=0;i< 5; i++)
for(int j=i+1;j< 10; j++)
if( ... )
System.out.println("Dado:"+buscar+" localizado");
Com base nessas informações e no conteúdo estudado, podemos dizer que a alternativa que corresponde ao 
comando IF acima é:
buscar == numeros[j][i].
buscar = numeros[j].
buscar = numeros[i][j].
buscar = numeros[i].
Resposta corretabuscar == numeros[i][j].
Ocultar opções de resposta 
Pergunta 1 -- /1
A Fila Dinâmica da interface Queue possui muitas similaridades com as estruturas dinâmicas de 
armazenamento. A função buscar recebe o valor do tipo da fila via argumento e faz uma varredura dentro da 
estrutura de Fila, procurando o valor recebido. Caso encontre o valor, ela o imprime na tela “Encontrado:” o valor 
e retorna true, fornecendo que foi encontrado o valor; caso contrário, aparecerá “Não Encontrado:” o valor e 
retorna-se false.
Agora, leia o código-fonte abaixo:
public boolean buscar(int aux) {
Iterator<Integer> filaIterator = fila.iterator();
while( filaIterator.hasNext())
{
if( ________________ )
{
System.out.println("Encontrado");
return true;
}
}
System.out.println("Não Encontrado:"+aux);
return false;
 }
Com base nessas informações e no conteúdo estudado, assinale a alternativa que completa o comando IF do 
código acima:
aux != null
Resposta corretafilaIterator.next()==aux
aux == fila.next()
filaIterator.next() != null
filaIterator.next()
P t 2 /1
Ocultar opções de resposta 
Pergunta 2 -- /1
A estrutura de árvore entre parênteses aninhados possibilita que seja representada e escrita em diversos 
arquivos de textos, no formato demonstrado abaixo. Parece-se com algumas notações que usamos no Microsoft 
Excel, por exemplo. Mesmo nesse formato, a Raiz é o elemento principal da árvore, fazendo com que seja o 
“menu” de acesso a todos os elementos.
Considere a árvore: (A (B (E)) (D (H (I)) ) ) e o conteúdo estudado, identifique quem é o Pai de B e D:
D
H
B
Resposta corretaA
C
Pergunta 3 -- /1
As filas estáticas são estruturas de alocação estática, ou seja, de tamanho fixo, pois implementam vetor na sua 
estrutura. No caso dos códigos, usa-se o queue e dequeue como operações que alteram o estado da fila, ou 
seja, a queue adiciona itens e a queue remove itens da estrutura.
Leia as operações abaixo, considerando a estrutura fila:
fila.queue(1);
fila.queue(2);
fila.isEmpty();
fila.queue(3);
fila.isFull();
fila.queue(4);
fila.peek();
fila.dequeue();
Ocultar opções de resposta 
Ocultar opções de resposta 
fila.imprimir();
Considerando essas informações e o conteúdo estudado, qual é o estado atual da fila após executar todas as 
operações?
4,3 e 2
1,2 e 4
Resposta correta2,3 e 4
1,2 e 3
3,2 e 1
Pergunta 4 -- /1
As árvores dinâmicas são estruturas que organizam de forma hierárquica os dados. Existem muitas formas de 
representá-los: as que representam desenhos geralmente são mais simples de entender, porém mais difíceis de 
demonstrar em consoles de programas.
Observe a figura abaixo:
Com base nessas informações e no conteúdo estudado, determine o nome da representação da árvore na 
figura:
ESTRUTURA DE DADOS-unid03-Q4_v1.PNG
Hierárquica
Representação encadeada
Nó
Resposta corretaDiagrama de inclusão
Parênteses aninhados
Ocultar opções de resposta 
Pergunta 5 -- /1As árvores dinâmicas são estruturas que organizam de forma hierárquica os dados. Existem muitas formas de 
representá-los: as que representam desenhos geralmente são mais simples de entender, porém mais difíceis de 
demonstrar em consoles de programas.
Observe a figura abaixo:
Com base nessas informações e no conteúdo estudado, determine o nome da representação da árvore na 
figura:
ESTRUTURA DE DADOS-unid03-Q4_v1.PNG
Parênteses aninhados
Nó
Representação encadeada
Resposta corretaDiagrama de inclusão
Hierárquica
Pergunta 6 -- /1
A Fila é um formato de armazenamento ou organização humana que tem por objetivo organizar itens de forma 
que o primeiro a ser organizado ou “enfileirado” é o primeiro a sair da organização.
Considerando essas informações e o conteúdo estudado, é correto afirmar que esse formato de organização é 
conhecido como:
Ocultar opções de resposta 
Ocultar opções de resposta 
FEFO
FILA
LEFO
LIFO
Resposta corretaFIFO
Pergunta 7 -- /1
A árvore é uma estrutura que é composta de node e suas ligações, porém sua organização e forma de utilização 
dependem do algoritmo escolhido, pois, utilizando uma árvore binária, os nós poderão possuir somente dois 
filhos e, dependendo das regras de balanceamento a cada nó inserido, ocorrerá o realinhamento de todos os 
nós. A árvore, diferente das demais estruturas, possui diversas propriedades, conceitos e terminologias que não 
se aplicam a outras estruturas.
Considerando essas informações e o conteúdo estudado, analise as afirmativas a seguir e assinale V para a(s) 
verdadeira(s) e F para a(s) falsa(s):
I. ( ) Node é uma estrutura referenciável que armazena valores dentro de uma árvore.
II. ( ) Cada Node possui apenas um Pai.
III. ( ) Cada Node pode possuir vários “irmãos”.
IV. ( ) Cada Node poderá ter dois antecessores.
Agora, assinale a alternativa que apresenta a sequência correta:
V, V, F, V
V, V, F, V
V, F, V, V
Ocultar opções de resposta 
Resposta corretaV, V, V, F
V, V, F, F
Pergunta 8 -- /1
A estrutura de árvore de representação encadeada demonstra um espaço entre os endereços dos filhos da 
direita e da esquerda e uma simbologia para os Nós nulos dos nós folhas ou folhas.
Observando a árvore acima e considerando o conteúdo estudado, identifique os valores da altura, grau da 
árvore e grau de saída de 16:
ESTRUTURA DE DADOS-UNID03-Q16_v1.PNG
altura: 0, grau da árvore: 2 e grau de saída:3
altura:3, grau da árvore: 2 e grau de saída: 1
Resposta corretaaltura: 3, grau da árvore: 2 e grau de saída: 0
altura:3, grau da árvore: 1 e grau de saída: 2
altura:1, grau da árvore: 2 e grau de saída: 3
Pergunta 9 -- /1
Dentro da estrutura de árvores, os nós terminais são extremamente importantes, pois definem o limite da 
estrutura. Da mesma forma que a raiz inicia a ligação entre todos os elementos, o nó terminal finaliza a busca ou 
percurso.
ESTRUTURA DE DADOS UNID03 Q19 1 PNG
Ocultar opções de resposta 
Ocultar opções de resposta 
Com base nessas informações e no conteúdo estudado, é correto afirmar que são os elementos terminais dessa 
árvore:
ESTRUTURA DE DADOS-UNID03-Q19_v1.PNG
1, 2, 3, 4, 5, 6 e null
Resposta correta4, 5, 6 e null
4, 5, 6
Incorreta: 3, 4, 5, 6, e null
1, 2 e 3
Pergunta 10 -- /1
Muitos elementos em várias estruturas possuem formas de ligação, como uma página web com âncoras ou links 
que apontam para outra página web. Um vetor aponta para seu próximo a partir do seu tamanho máximo e, em 
outra estrutura, é chamada de grafo com as arestas.
 
Com base nessas informações e no conteúdo estudado, é correto afirmar que, dentro de uma estrutura de 
árvore binária, o termo para ligação de elementos em seu conjunto é:
hyperlink
interligação
 link
topologia
arco
Ocultar opções de resposta 
Ocultar opções de resposta 
Pergunta 1 -- /1
Ao entrar em uma estrutura da API Collection nas estruturas sequenciais, consegue-se navegar por IDs. 
Quando se tem as estruturas de conjuntos e mapas, elas navegam via for-each, a partir do padrão de 
projeto iterator.
 
Considerando uma LinkedList de nome “lista do tipo int.”, a instrução de navegação com o iterator em uma 
LinkedList nesde formato é:
int i=0;do{ System.out.println( lista[i]); i++;} while(i< lista.length);
for(int i=0;i< lista.length; i++){ System.out.println( lista[i]);}
int i=0; while(i< lista.length){ System.out.println( lista[i]); i++;}
Resposta corretafor(int x: lista){ System.out.println( x);}
for-each(lista){ System.out.println( lista[i]);}
Pergunta 2 -- /1
Para imprimir os valores da lista ligada, é necessário fazer um LOOP dentro da primeira estrutura até a 
última, entrando em um Nó especifico. Por meio da referência do próximo, navega-se até a última 
referência, que é o null, através do método getProximo().
Considerando o texto-base e os conteúdos estudados, é correto afirmar que o nó específico utilizado para 
navegar em toda a estrutura é:
getProximo()
Resposta corretaprimeiroNo
No
ultimoNo
Ocultar opções de resposta 
meioNo
Pergunta 3 -- /1
Uma Pilha de alocação estática possui em sua propriedade uma função, que verifica se seus espaços 
estão alocados ou não. Esse método, por ser tratar de uma função booleana, retornará true para todos 
alocados e false para espaço ou espaços em branco. Implementando vetor, a alocação estática tem a 
vantagem de poder tratar os elementos de forma indexada, fazendo seu acesso ser mais veloz. No formato 
veloz, por outro lado, não tem essa possibilidade, e deve-se navegar nos elementos para acesso.
 
De acordo com a alocação estática na estrutura Pilha, é possível afirmar que o nome da função que possui 
essas características é:
 peek()
pop()
isEmpty()
 search()
Resposta corretaisFull()
Pergunta 4 -- /1
A Lista Duplamente Ligada possui muitas similaridades com a Lista Ligada. A função buscar recebe o valor 
do tipo da lista via argumento e faz uma varredura dentro da estrutura do Node, procurando o valor que foi 
recebido. Caso encontre o valor do Node, ele imprime o valor em tela “Encontrado:”, e retorna true, 
Ocultar opções de resposta 
afirmando que foi encontrado o valor. Caso contrário, aparecerá “Não Encontrado:” o valor, e retornará 
false.
 
Observe o código fonte a seguir:
public boolean buscar(int aux) {
 No atual = primeiroNo;
 while (atual != null) {
 if ( _____________ ) {
 System.out.println("Encontrado:"+aux);
 return true;
 }
 atual = atual.getProximo(); 
 } 
 System.out.println("Não Encontrado:"+aux); 
 return false; 
 } 
 
Com base nessas informações e nos conteúdos estudados, pode-se afirmar que a função que entra no 
comando if é:
aux == atual
aux != null
 atual != null
Resposta corretaaux == atual.getValor()
atual.getValor()
Pergunta 5 -- /1
A TAD (Tipo Abstrato de Dados) Pilha é uma variação da Lista Linear que possui características 
semelhantes a uma pilha do mundo real, armazenando os valores inseridos no formato de LIFO – Last In 
First Out (O último que entra é o primeiro a sair).
 
Ocultar opções de resposta 
Analise a sequência a seguir:
 
Pilha p=new Pilha();
p.push(“A”);
p.push(“D”);
p.push(“Ô);
p.push(“O”);
p.pop( );
p. pop( );
p. pop( );
 
Com base nessas informações e no conteúdo estudado, pode-se afirmar que o estado da Pilha, ao final 
das operações apresentadas na sequência, será:
p [ A, D ]
p [ Ã , O]
Resposta corretap [ A ]
p [ null ]
p [ O ]
Pergunta 6 -- /1
Algumas técnicas de programação são necessárias para que uma determinada lógica possa ser 
executada. De forma geral, a lógica de programação utiliza as condições, os loops e funções para poder 
executar quase todos os algoritmos. 
Há também uma técnica na programação que permite ao programa criar funções que se auto referenciam, 
passando argumentos que façam com que a função tenha um critério de parada. Isso ocorre para que 
possa ser finalizado o ciclo de chamadas pois, caso contrário, ele se transforma em um ciclo sem fim, 
tornando–se um loop infinito. 
 
De acordo com as informaçõesapresentadas no texto base, é possível afirmar que o conceito descrito se 
chama:
Ocultar opções de resposta 
Ocultar opções de resposta 
Incorreta: contador
Resposta correta recursão
laços de repetição
sobrecarga
critério de parada
Pergunta 7 -- /1
Antes de adicionar elementos à Lista Duplamente Ligada, deve-se, primeiramente, saber em qual 
extremidade serão inseridos esses elementos. Caso sejam inseridos no início da lista, é preciso haver uma 
instrução diferente do último item da lista.
 
Com base nessas informações e no conteúdo estudado, pode-se afirmar que correspondem à inserção na 
última extremidade da Lista Ligada:
 
I. primeiroNode = ultimoNode = new Node(valor, null,null);
II. primeiroNode = new Node(valor, primeiroNode,null);
III. ultimoNode.setProximo( new Node(valor, null,ultimoNode));
IV. ultimoNode = ultimoNode.getProximo();
 
Está correto apenas o que se afirma em:
I, II e III
I e II
II e III
Resposta corretaIII e IV
I, II e IV
Ocultar opções de resposta 
Pergunta 8 -- /1
Considere uma situação em que ocorre a utilização do método bubble sort em um vetor int desordenado 
com os seguintes números:
10-9-7-4
Agora, observe o código-fonte a seguir:
int vetor[]=new int[4];
 
 for(int contadorL=0; contadorL< vetor.length-1 ; contadorL++)
 {
 for(int contadorC=contadorL+1; contadorC< vetor.length ; contadorC++)
 {
 if(vetor[contadorL]> vetor[contadorC])
 {
 int aux= vetor[contadorL];
 vetor[contadorL]=vetor[contadorC];
 vetor[contadorC]=aux; 
 }
 }
}
 
Com base nessas informações e no conteúdo estudado, ao acontecer a primeira troca, o estado atual do 
vetor será:
9-4-7-10
Resposta correta9-10-7-4
10-9-7-4
4-7-9-10
Incorreta: 4-9-7-10
Ocultar opções de resposta 
Pergunta 9
--
Na linguagem de programação, um loop é dividido em início, condição, contador e instrução. Através de 
referências a suas extremidades, ele executa os códigos que estão dentro de seus domínios, ficando a 
cargo do compilador identificar o início e o fim do loop. Isso ocorre, sobretudo, ao fazer seu incremento ou 
decremento (seu passo) para verificar se há condição para executá-lo ou não. 
Uma função ou método recursivo é um método muito parecido com o loop, salvo algumas distinções: os 
loops são instruções ou palavras reservadas e toda recursão é uma função, porém que referencia a ela 
mesma. 
 
Observe o código a seguir: 
 
public void imprimir(int aux) 
{ 
 if(aux == 0) 
 return; 
 else 
 System.out.println( aux ); 
 impressao(aux--); 
} 
 
De acordo com o texto-base e o conteúdo estudado, é correto afirmar em relação ao código que:
essa função é recursiva
trata-se de loop sem critério de parada
trata-se de uma função com retorno de um int
Resposta corretaessa função não é recursiva
trata-se de loop com critério de parada
Pergunta 10 -- /1
Ocultar opções de resposta 
A Lista Duplamente Ligada é uma lista de alocação dinâmica baseada na Lista Ligada, porém ela tem 
como característica possuir referências do seu Nó próximo e Nó anterior. A cada inserção ou remoção de 
elementos, os atributos anterior e próximo devem ser editados.
Para realizar uma navegação nos itens de uma Lista Ligada, alguns procedimentos devem ser realizados.
 
Considerando os conteúdos estudados no livro da disciplina, analise as afirmativas a seguir que descrevem 
esses procedimentos.
 
I. Cria-se uma recursão para navegar nas estruturas.
II. Cria-se uma variável auxiliar do mesmo elemento do primeiro Nó.
III. Cria-se um loop até ser menor que o número de elementos contidos.
IV. Seta-se o Nó auxiliar para seu próximo Nó.
V. Seta-se o Nó auxiliar para seu Nó anterior.
VI. Cria-se um loop até o Nó auxiliar ser nulo.
 
Está correto apenas o que se afirma em:
Resposta corretaII, IV e VI
I, VI e V
II, III e IV
II, VI e V
I, III e V
Ocultar opções de resposta 
Ocultar opções de resposta 
Pergunta 1 -- /1
Todo objeto ou entidade do mundo real possui diversas características numéricas e alfanuméricas. Não se 
pode, em uma estrutura de dados, trabalhar sempre com o mesmo tipo de informação.
A partir disso, analise a seguinte situação:
Considere um cadastro de clientes que envolva o seguinte conjunto de dados: nome do tipo String; idade 
do tipo int. e e-mail do tipo String.
Considerando as informações do texto-base e o conteúdo estudado, pode-se afirmar que o seguinte tipo de 
dado seria ideal para armazenar essa entidade:
Estrutura de dados
Vetor
Estrutura homogênea de dados
Resposta corretaEstrutura heterogênea de dados
String
Pergunta 2 -- /1
Cada linguagem de programação possui sua sintaxe, ou seja, as regras responsáveis por gerar um código 
objeto para ser executado no processador. No caso de Java, seu código objeto é executado pela JVM 
(Java Virtual Machine), é uma máquina virtual que executa diretamente os programas elaborados em Java.
Considerando essas informações e o conteúdo estudado, pode-se afirmar que o código para uma 
declaração de variável em Java, do tipo inteiro e que receba o número 33, é:
int i:=33
int idade[]=new int[33]
Ocultar opções de resposta 
[] [ ]
Integer idade=new Integer()
inteiro idade<-33
Resposta corretaint idade = 33
Pergunta 3 -- /1
O tipo de dado colocado em uma estrutura é o que pode definir todo o algoritmo em termos de velocidade 
no processador. Dependendo do dado a ser trabalhado, no entanto, não há muitas possibilidades de 
escolha. A Cadeia, por exemplo, é usada para armazenar letras e caracteres especiais, e não há substituto 
para ela em situações nas quais se deve armazenar nomes, palavras ou letras. Esse tipo de dado, porém, 
é naturalmente mais lento, considerando que para o computador formar cada letra é necessário que ele 
faça um conjunto de cálculos.
A escolha do tipo de dado em uma estrutura leva em consideração alguns aspectos. Tendo isso em vista, 
associe cada aspecto abaixo a seu correspondente.
1) Identificador.
2) Tipo de armazenamento.
3) Velocidade em inserir dados.
4) Algoritmo de ordenação e localização de dados.
( ) O nome pelo qual a estrutura será identificada geralmente possui ligação com sua aplicação do mundo 
real.
( ) Se serão armazenados números, letras, valores lógicos etc.
( ) Velocidade medida geralmente em milissegundos, podendo variar dependendo do tipo de estrutura 
escolhida.
( ) Existem muitos algoritmos específicos para cada tipo de estrutura, que dependem da sua aplicação. 
Embora, às vezes, estruturas demorem mais em ordenar, elas também podem ser mais velozes em 
localizar os dados.
Agora, assinale a alternativa que apresenta a sequência correta:
4, 3, 1, 2
Resposta correta1, 2, 3, 4
4, 3, 2, 1
Ocultar opções de resposta 
2, 1, 4, 3
1, 2, 4, 3
Pergunta 4 -- /1
Um algoritmo pode ser também definido como um conjunto de passos para a resolução de um problema ou 
para a execução de uma tarefa. Existem diversas formas de classificar algoritmos, por exemplo: 
pseudocódigo, fluxogramas, descrição narrativa e linguagem de programação. Considerando o que foi 
estudado na unidade, observe uma representação de algoritmo abaixo:
1 - Entre na sala
2 - Busque o interruptor
3 - Acenda a luz, através do ligamento da chave do interruptor.
De acordo com o texto-base, a representação de algoritmo lida acima pode ser classificada como:
Fluxograma
Resposta corretaDescrição narrativa
Pseudocódigo
Enunciado ou questão
Linguagem de programação
Pergunta 5 -- /1
Ocultar opções de resposta 
Dados, informação e conhecimento possuem, na computação, aspectos diferentes que podem fazer com 
que uma estrutura possa se comportar de maneira diferenciada dependendo da forma. Por exemplo: o 
dado é a menor partícula da computação e trabalha desde o binário até formar uma letra ou palavra. Após 
concluída essa etapa, organiza-se um conjunto de dados para formar uma informação que a partir de uma 
frase ou um parágrafo. O conhecimento é o cruzamento e relação entre diferentes frases, parágrafos e 
palavras.
Veja os exemplos abaixo:
1- “José”– 123 – 00FF33
2- 3.141516 – true - false
3- “Há dez anos, no mês de janeiro, chove a partir de 5 centímetros neste alqueire de Saint Petersburg.”
Considerando o texto-base, os exemplos listados de 1 a 3 acima podem ser classificados, respectivamente, 
como:
dado, informação e conhecimento
informação, informação e conhecimento
informação, dado e conhecimento
Resposta corretadado, dado e conhecimento
dado, dado e informação
Pergunta 6 -- /1
Uma matriz é uma estrutura composta homogênea, que possui no mínimo duas dimensões. Nesse caso, a 
quantidade de dimensões pode variar dependendo da linguagem de programação. A matriz, assim como o 
vetor, possui uma tipagem. Além disso, basicamente todas as propriedades de vetor cabem em matriz, mas 
em escala maior. Ou seja, enquanto o vetor possui apenas uma dimensão, a matriz possui de duas até ‘n’ 
dimensões, e a cada dimensão há um colchete “[]” para representá-la.
Considerando essas informações e o conteúdo estudado, é correto afirmar que a forma correta de inserir 
dados na matriz, na linguagem de programação Java, é:
Ocultar opções de resposta 
Ocultar opções de resposta 
Resposta corretamatriz[linha][coluna]=valor
matriz[linha][coluna]!=valor
matriz[linha][coluna]<- valor
matriz[coluna][linha]<>valor
matriz[linha][coluna]==valor
Pergunta 7 -- /1
As linguagens orientadas a objetos, como Java, possuem instruções que buscam simular aspectos da vida 
real, transformando cada item em entidades computáveis nas quais são denominadas classes. Essas 
entidades possuem ações que na programação chamamos de funções ou métodos, além de propriedades 
denominadas de atributos ou variáveis, mas que, na memória, transformam-se em conjunto de instruções.
Considerando uma sintaxe simples, com uma apresentação na tela da palavra “Teste!”, pode-se afirmar 
que o método iniciado ao executar a classe e apresentar essa palavra é:
begin
Mai
start
Resposta corretamain
init
Pergunta 8 -- /1
Ocultar opções de resposta 
A linguagem Java é uma das principais linguagens utilizadas comercialmente, e seu formato possui 
características que facilitam a programação, fazendo com que ela seja multiplataforma e utilizada em mais 
de 3 bilhões de dispositivos no mundo. Ainda que seja uma linguagem utilizada em diversas organizações, 
ela possui padrões, como toda linguagem. No caso específico de Java, seu padrão orientado a objetos traz 
propriedades de herança, polimorfismo e encapsulamento.
Considerando essas informações e o conteúdo estudado, podemos afirmar que a forma correta do código-
fonte do Objeto que implementa encapsulamento é:
class Obj{ private int x; public void setX(int aux){x=aux;}
class Obj{ private x;}
public int getX(){return x;}
class Obj{ private int y; public void setX(int aux){x=aux;}
public int getX(){return x;} }
Resposta correta
class Obj{ private int x; public void int setX(int aux){this.x=aux;}
public getX(){return x;}
Pergunta 9 -- /1
O vetor é uma das estruturas mais simples de se utilizar para armazenamento de dados. Porém, em 
contrapartida, para uma comparação ou busca de seus elementos deve-se verificar todos os itens nele 
armazenados. Para verificar todos os itens utiliza-se a navegação, termo da computação que busca entrar 
em uma estrutura de dados e mostrar seus itens. Para navegar em uma estrutura vetorial utiliza-se o loop, 
pois se trata de um elemento que contém um início e um fim. Observe o exemplo:
for(int cont=0;cont <=10;cont++)
{
vet[cont]=cont+1;
System.out.println(vet[i]);
}
Ocultar opções de resposta 
Ocultar opções de resposta 
Considerando as informações do texto-base e o conteúdo estudado, podemos afirmar que, ao executar o 
loop acima, o que ocorrerá com o vetor na posição 3 quando a variável cont estiver com valor 3 é:
vet[3] = 0
vet[3] = 1
vet[3] = 3
vet[3] = null
Resposta corretavet[3] = 4
Pergunta 10 -- /1
Em geral, os programas contêm dados armazenados que podem corresponder a tipos diversos de acordo 
com a necessidade. Sendo assim, cada dado possui um formato e uma regra específica, considerando o 
que será alocado em memória. Nesse caso, são pensados que tipo de caracteres, letras e números podem 
ser usados na classificação Cadeia. Para dados que podem assumir apenas dois valores, como por 
exemplo “Verdadeiro” e “Falso”, o tipo mais utilizado é o Lógico.
A partir das informações trazidas no texto-base, afirma-se que um cadastro de dados envolvendo números 
flutuantes ou fracionados terá como classificação de variável e dado o termo:
Resposta corretaReal
Cadeia
Bit
Lógico
Inteiro
14/12/2021 04:40 Comentários
https://sereduc.blackboard.com/ultra/courses/_76746_1/outline/assessment/_4502347_1/overview/attempt/_16216087_1/review/inline-feedback?… 1/8
Ocultar opções de resposta 
Pergunta 1 -- /1
O percurso em um Nó é feito sempre pelo seu atributo próximo, independente da sua topologia ou 
interligações, de acordo com uma varredura em uma Lista Ligada, na qual um elemento referencia outro.
Leia o código a seguir:
 
No aux=primeiroNo ;
while ( aux !=null ) 
aux= aux.getProximo(); 
 
Assim, e considerando os conteúdos estudados no livro da disciplina, analise as afirmativas a seguir sobre 
o percurso de um Nó. 
 
I. No aux é o último Nó. 
II. O null representa o último Nó. 
III. No aux é o primeiro Nó. 
IV. Esses comandos executam erro. 
V. Esses comandos não executam erro.
Está correto apenas o que se afirma em:
Resposta corretaII, III e V
I, II e IV
I, III e IV
I, II e V
II, III e IV
Pergunta 2 -- /1
14/12/2021 04:40 Comentários
https://sereduc.blackboard.com/ultra/courses/_76746_1/outline/assessment/_4502347_1/overview/attempt/_16216087_1/review/inline-feedback?… 2/8
Ocultar opções de resposta 
Um Nó ou Node é uma estrutura referenciável dentro de uma Lista Ligada, Pilha, Fila ou Árvore. Todo o 
Node é caracterizado por dois atributos: valor e próximo. Em algumas estruturas ele é diferenciado em 
direita e esquerda, enquanto em outras há uma lista de referências que pode fazer ligações n com diversos 
nodes ao mesmo tempo, formando algumas ligações que remetem a topologias como as de rede, por 
exemplo. Em formato de Programação Orientado a Objetos, um Node é uma classe que utiliza conceitos de
encapsulamento.
 
De acordo com os conteúdos estudados e o texto-base, é correto afirmar que uma estrutura caracterizada 
por auxiliar um elemento de uma lista node a acessar outra lista Node é exemplificada por:
public int getValor()
public void getProximo()
Resposta corretapublic Node getProximo()
private Node getProximo()
private void getValor()
Pergunta 3 -- /1
A Pilha em formato de alocação estática implementa fortemente o vetor, trazendo suas características. De 
forma geral, os métodos que são acessados, tanto na alocação estática, quanto na dinâmica, possuem o 
mesmo nome e fornecem o mesmo resultado. A diferença se dá na sua estrutura.
Observe o código da função peek ou topo a seguir:
 
public class Pilha {
 private int vetorPilha[];
 private int topo;
public int peek() {
 // COMANDO
 ________________________ 
 }
...
}
Considerando essas informações e seus conhecimentos sobre a alocação estática da Pilha, pode-se 
afirmar que o código que completa a função peek ou topo é:
14/12/2021 04:40 Comentários
https://sereduc.blackboard.com/ultra/courses/_76746_1/outline/assessment/_4502347_1/overview/attempt/_16216087_1/review/inline-feedback?… 3/8
Ocultar opções de resposta 
Ocultar opções de resposta 
return (topo == vetorPilha.length - 1);
Resposta corretareturn vetorPilha[topo];
vetorPilha = new int[max];
return vetorPilha[topo--];
 pilha.push();
Pergunta 4 -- /1
Uma Pilha de alocação estática possui em sua propriedade uma função, que verifica se seus espaços 
estão alocados ou não. Esse método, por ser tratar de uma função booleana, retornará true para todos 
alocados e false para espaço ou espaços em branco. Implementando vetor, a alocação estática tem a 
vantagem de poder tratar os elementos de forma indexada, fazendo seu acessoser mais veloz. No formato 
veloz, por outro lado, não tem essa possibilidade, e deve-se navegar nos elementos para acesso.
 
De acordo com a alocação estática na estrutura Pilha, é possível afirmar que o nome da função que possui 
essas características é:
Resposta corretaisFull()
isEmpty()
pop()
 peek()
 search()
Pergunta 5 -- /1
14/12/2021 04:40 Comentários
https://sereduc.blackboard.com/ultra/courses/_76746_1/outline/assessment/_4502347_1/overview/attempt/_16216087_1/review/inline-feedback?… 4/8
Ocultar opções de resposta 
A Lista Ligada e Duplamente Ligada possui a função isEmpty(), uma função cuja convenção mundial de 
programadores determina que é uma nomenclatura que significa, literalmente, “está Limpa ?”. Nesse caso, 
ela retorna true para sim, e false para não, considerando que “limpa” ou “não limpa” determina se ela está 
cheia. No caso da isEmpty, por representar um atributo booleano, é a única exceção, dentro da 
programação orientada a objetos, que não utiliza geter’s e seter’s no encapsulamento.
 
Agora analise o código da função a seguir, sabendo que primeiroNo é uma classe Node.
 
 public boolean isEmpty() {
 return primeiroNo;
 }
 
A partir dessas informações e dos conteúdos estudados, analise as alternativas a seguir sobre o código 
acima.
I. A linha do return poderia ser substituída por (primeiroNo == null) ? true : false.
II. O objeto primeiroNo é uma instância da classe Lista.
III. O tipo de retorno de isEmpty() está de acordo com o tipo do valor que armazena a estrutura.
IV. O objeto primeiroNo representa a ocorrência de algum nó na estrutura.
V. A função retorna a quantidade de elementos da estrutura.
IV e V
III e IV
I e II
I e V
Resposta corretaI e IV
Pergunta 6 -- /1
14/12/2021 04:40 Comentários
https://sereduc.blackboard.com/ultra/courses/_76746_1/outline/assessment/_4502347_1/overview/attempt/_16216087_1/review/inline-feedback?… 5/8
Ocultar opções de resposta 
Ocultar opções de resposta 
Algumas técnicas de programação são necessárias para que uma determinada lógica possa ser 
executada. De forma geral, a lógica de programação utiliza as condições, os loops e funções para poder 
executar quase todos os algoritmos. 
Há também uma técnica na programação que permite ao programa criar funções que se auto referenciam, 
passando argumentos que façam com que a função tenha um critério de parada. Isso ocorre para que 
possa ser finalizado o ciclo de chamadas pois, caso contrário, ele se transforma em um ciclo sem fim, 
tornando–se um loop infinito. 
 
De acordo com as informações apresentadas no texto base, é possível afirmar que o conceito descrito se 
chama:
sobrecarga
laços de repetição
critério de parada
contador
Resposta correta recursão
Pergunta 7 -- /1
A recursão é uma técnica da programação que faz com que uma função se referencie. Muitos algoritmos 
não usam recursão, utilizando loops no lugar. Porém, tudo que pode ser recursivo pode ser um loop. Uma 
das aplicações de recursão se dá no algoritmo que está contido na descrição abaixo:
 
Esses algoritmos consistem na aplicação do método dividir e conquistar. Aplicando recursão, divide-se o 
vetor em partes, buscando um valor arbitrário chamado de pivô. Os valores ordenados à direita são 
maiores que o pivô, enquanto os valores à esquerda do pivô são menores, o que é chamado de forma 
recursiva. Faz-se, assim, a mesma ordenação entre as Subarrays.
 
Considerando o texto-base e os conteúdos estudados, pode-se afirmar que o nome do algoritmo descrito é:
Bubble Sort
14/12/2021 04:40 Comentários
https://sereduc.blackboard.com/ultra/courses/_76746_1/outline/assessment/_4502347_1/overview/attempt/_16216087_1/review/inline-feedback?… 6/8
Ocultar opções de resposta 
Selection Sort
Insertion Sort
Resposta corretaQuick Sort
Collection Sort
Pergunta 8 -- /1
Na linguagem de programação, um loop é dividido em início, condição, contador e instrução. Através de 
referências a suas extremidades, ele executa os códigos que estão dentro de seus domínios, ficando a 
cargo do compilador identificar o início e o fim do loop. Isso ocorre, sobretudo, ao fazer seu incremento ou 
decremento (seu passo) para verificar se há condição para executá-lo ou não. 
Uma função ou método recursivo é um método muito parecido com o loop, salvo algumas distinções: os 
loops são instruções ou palavras reservadas e toda recursão é uma função, porém que referencia a ela 
mesma. 
 
Observe o código a seguir: 
 
public void imprimir(int aux) 
{ 
 if(aux == 0) 
 return; 
 else 
 System.out.println( aux ); 
 impressao(aux--); 
} 
 
De acordo com o texto-base e o conteúdo estudado, é correto afirmar em relação ao código que:
Resposta corretaessa função não é recursiva
trata-se de loop sem critério de parada
Incorreta: essa função é recursiva
trata-se de uma função com retorno de um int
14/12/2021 04:40 Comentários
https://sereduc.blackboard.com/ultra/courses/_76746_1/outline/assessment/_4502347_1/overview/attempt/_16216087_1/review/inline-feedback?… 7/8
Ocultar opções de resposta 
trata-se de loop com critério de parada
Pergunta 9 -- /1
A TAD (Tipo Abstrato de Dados) Pilha é uma variação da Lista Linear que possui características 
semelhantes a uma pilha do mundo real, armazenando os valores inseridos no formato de LIFO – Last In 
First Out (O último que entra é o primeiro a sair).
 
Analise a sequência a seguir:
 
Pilha p=new Pilha();
p.push(“A”);
p.push(“D”);
p.push(“Ô);
p.push(“O”);
p.pop( );
p. pop( );
p. pop( );
 
Com base nessas informações e no conteúdo estudado, pode-se afirmar que o estado da Pilha, ao final 
das operações apresentadas na sequência, será:
p [ A, D ]
p [ O ]
p [ null ]
Resposta corretap [ A ]
p [ Ã , O]
Pergunta 10 -- /1
14/12/2021 04:40 Comentários
https://sereduc.blackboard.com/ultra/courses/_76746_1/outline/assessment/_4502347_1/overview/attempt/_16216087_1/review/inline-feedback?… 8/8
Ocultar opções de resposta 
g
A Lista Duplamente Ligada possui muitas similaridades com a Lista Ligada. A função buscar recebe o valor 
do tipo da lista via argumento e faz uma varredura dentro da estrutura do Node, procurando o valor que foi 
recebido. Caso encontre o valor do Node, ele imprime o valor em tela “Encontrado:”, e retorna true, 
afirmando que foi encontrado o valor. Caso contrário, aparecerá “Não Encontrado:” o valor, e retornará 
false.
 
Observe o código fonte a seguir:
public boolean buscar(int aux) {
 No atual = primeiroNo;
 while (atual != null) {
 if ( _____________ ) {
 System.out.println("Encontrado:"+aux);
 return true;
 }
 atual = atual.getProximo(); 
 } 
 System.out.println("Não Encontrado:"+aux); 
 return false; 
 } 
 
Com base nessas informações e nos conteúdos estudados, pode-se afirmar que a função que entra no 
comando if é:
Resposta corretaaux == atual.getValor()
 atual != null
aux == atual
atual.getValor()
aux != null
14/12/2021 03:40 Comentários
https://sereduc.blackboard.com/ultra/courses/_76746_1/outline/assessment/_4502343_1/overview/attempt/_16216006_1/review/inline-feedback?… 1/7
Ocultar opções de resposta 
Ocultar opções de resposta 
Pergunta 1 -- /1
Cada linguagem de programação possui sua sintaxe, ou seja, as regras responsáveis por gerar um código 
objeto para ser executado no processador. No caso de Java, seu código objeto é executado pela JVM 
(Java Virtual Machine), é uma máquina virtual que executa diretamente os programas elaborados em Java.
Considerando essas informações e o conteúdo estudado, pode-se afirmar que o código para uma 
declaração de variável em Java, do tipo inteiro e que receba o número 33, é:
Integer idade=new Integer()
inteiro idade<-33
Resposta corretaint idade = 33
int i:=33
int idade[]=new int[33]
Pergunta 2 -- /1
Um algoritmo pode ser também definido como um conjunto de passos para a resolução de um problema ou 
para a execução de uma tarefa. Existem diversas formas de classificar algoritmos, por exemplo: 
pseudocódigo, fluxogramas, descrição

Outros materiais