Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prova Estrutura de Dados 1. Quando criamos um projeto, fazemos a declaração de variáveis para armazenar os dados. De acordo com Deitel e Deitel (2010, p. 105), a linguagem Java “[…] requer que todas as variáveis tenham um tipo. Por essa razão, o Java é referido como uma linguagem fortemente tipada”. DEITEL, P.; DEITEL, H. Java: como programar. 8. ed. São Paulo: Pearson Education do Brasil, 2010. Dessa forma, considerando nossos estudos sobre os dados primitivos em Java, qual dos tipos de dados a seguir podem ser considerados primitivos na linguagem Java? 2. 2. Existem estruturas de dados com métodos específicos para ordenação. Os conceitos dessas estruturas são aplicados aos algoritmos para melhorar o tempo de execução nas aplicações. Cada método de ordenação possui um conceito e uma forma de manipular os dados. Assim, analise o código abaixo: Qual a alternativa que corresponde aos conceitos de ordenação do pseudocódigo (imagem) acima: 3. Ao inserir um nó em uma árvore binária de busca, é necessário que a característica fundamental do tipo de estrutura seja preservada. Assim, para qualquer subárvore que for considerado o nó filho da esquerda, este deve ter um valor menor que o da raiz. De forma similar, o nó filho da direita tem que ter um valor acima. A árvore de valores numéricos a seguir foi construída para que seja uma árvore binária de busca. Observe-a com atenção. Fonte: Elaborada pela autora, 2019. Agora, assinale a alternativa que contém os valores numéricos para X e Y, mantendo a árvore representada como uma árvore binária de busca. 4. A inserção de um elemento em uma árvore binária de busca pode ser implementada por meio de um método recursivo. Este é aquele que tem uma chamada para o próprio método dentro da sua definição. Para que o algoritmo não execute indefinidamente, é necessário que seja inserida uma condição de parada. Veja o trecho de código a seguir para inserção de um nó em uma árvore binária de busca. Fonte: Elaborada pela autora, 2019. Com base no código anterior, assinale a alternativa que contém o comando que deve ser inserido como cláusula condicional do comando if (em destaque no código), para que o algoritmo tenha uma condição de parada. 5. Um vetor ou array é uma estrutura de dados simples que nos auxilia no armazenamento de variáveis do mesmo tipo. Existe o array unidimensional, o bidimensional e o multidimensional. Assim, para declararmos um array, devemos especificar algumas informações, como nome, quantidade de posições e o tipo de dado que será armazenado. Sendo assim, com base em nossos estudos, como devemos percorrer um array bidimensional e imprimir os elementos por linha? 6. O método de ordenação Insertion Sort, também conhecido como método de inserção, é classificado como um método simples. O funcionamento do método é percorrer os elementos e à medida que avança vai ordenando. Utilize esse algoritmo para organizar em ordem crescente um array unidimensional, contendo os números [5,3,8,2,6]. Assinale a alternativa a seguir que apresente a quantidade de trocas que serão realizados para ordenar o array utilizando o algoritmo Insertion Sort. 7. O processo de inserção de um nó em uma árvore binária de busca viabiliza que o processo de busca por um elemento tenha melhor performance que uma busca sequencial, se os dados forem dispostos em uma estrutura mais simples, como um vetor. Por performance, podemos entender como o tempo para se encontrar o elemento e o número de comparações que precisam ser feitas, a fim de se achar o item procurado. Com base nessas informações e em nossos estudos sobre o assunto, analise os esquemas de árvores apresentados a seguir. I. II. III. IV. Agora, assinale a alternativa que contém apenas as representações com árvores binárias de busca. 8. A complexidade de um algoritmo é calculada por meio da complexidade temporal e espacial, sendo na primeira o cálculo do tempo que as instruções levam para serem executadas em uma aplicação (utilizando as funções), e na sequência, o espaço na memória que o algoritmo utiliza enquanto é executado. Existem algoritmos que necessitam de muito mais espaço, como o Algoritmo _____________. Assinale a alternativa que complete o nome de algoritmo que exige mais espaço na memória. 9. Para a definição de um nó em uma árvore, precisamos, inicialmente, encapsular a informação armazenada em um novo tipo de dado, ou seja, em uma nova classe Java. Isto é possível por meio da declaração dos atributos na classe, que nada mais são do que variáveis presentes em todos os objetos de determinado tipo. Os atributos são variáveis, posições na memória do computador que podem armazenar dados, formadas por quatro elementos: nome, tipo, tamanho e valor. Na linguagem Java, é possível, ainda, definir um modificador de visibilidade se a variável for um atributo da classe, sendo os valores permitidos public, private, protected ou default. A figura a seguir, por exemplo, traz a declaração de uma classe “Pergunta”, com três atributos: texto da pergunta, alternativas e dicas sobre como responder. Observe. Fonte: Elaborada pela autora, 2019. Sendo assim, assinale a alternativa a seguir que contém a inicialização correta do atributo “opcoesResposta” com cinco opções em um objeto do tipo “Pergunta” na linguagem Java. 10. Uma estrutura de dados do tipo árvore é formada por uma série de elementos ou nós que são ligados entre si por meio de arestas. O processo de construção de uma árvore começa pela definição do nó raiz e pela inserção dos nós filhos das subárvores da esquerda e da direita. Considere, por exemplo, o nó formado pelo nome das áreas da Ciência da Computação, que são derivadas da disciplina de Estrutura de Dados: Laboratório de Programação I e Análise de Algoritmos. Fonte: Elaborada pela autora, 2019. Agora, considere o trecho de código a seguir. Veja que ele representa a criação de uma árvore binária, cuja informação é armazenada em uma classe “NoDisciplina”, em um atributo do tipo string. Fonte: Elaborada pela autora, 2019. Sendo assim, assinale a alternativa a seguir que realiza a inserção dos filhos da esquerda e da direita, conforme apresentado no esquema da subárvore.
Compartilhar