Questões de Listas (Algoritmos e Estrutura de Dados)

Limpar Busca

Para acelerar a busca sobre uma lista de mensagens, Beatriz adotou uma tabela de dispersão, na qual o e-mail do emissor é quem define o hash.

N: INTEIRO V: VETOR [0..N-1] de LISTA<MENSAGEM> Algoritmo Adicionar (M: MENSAGEM) H <- 0 Para i de 0 até Tamanho (M.email) - 1 H <- H + Ord (M.email[i]) Fim Para H <- H Mod N V[H].Incluir(M) Fim Algoritmo

O hash é dado pelo resto da divisão entre a soma dos códigos ASCII do email e o tamanho do vetor de listas. Para que Beatriz obtenha a melhor distribuição das mensagens nas listas:

  • A o valor dos códigos ASCII, obtidos pela função Ord, deve ser multiplicado por N;
  • B a soma dos códigos ASCII deve ser feita do final para o início do campo email de M;
  • C o número N deve ser primo;
  • D a mensagem M deve ser incluída na lista da posição N – H do vetor V;
  • E o número N precisa ser par.

As estruturas de dados utilizadas em programação determinam como as informações serão armazenadas, organizadas e acessadas, sendo uma parte importante no projeto de software, com impacto no seu desempenho e eficiência.
Sobre estruturas de dados lineares, analise as afirmativas a seguir.

I. Para realizar uma busca por um elemento em uma lista simplesmente encadeada pode-se começar a busca pelo início ou fim da lista.
II. Listas duplamente encadeadas não permitem a exclusão de elementos que não sejam o último ou o primeiro elemento da lista.
III. Uma lista circular pode ser simplesmente encadeada ou duplamente encadeada.

Está correto o que se afirma em

  • A I, apenas.
  • B II, apenas.
  • C III, apenas.
  • D I e III, apenas.
  • E II e III, apenas

Acerca de estrutura de dados e algoritmos, julgue o item a seguir.


Em uma lista circular ordenada, o acesso ao maior elemento possui complexidade de tempo de pior caso O(1).

  • Certo
  • Errado

Quanto à lógica de programação e à estrutura de dados, julgue o item.

Em uma lista linear, a remoção de elementos é sempre realizada no início da lista.

  • Certo
  • Errado

Analise as afirmativas:

I. Java possui classes nativas para implementação de matrizes, listas, pilhas e filas. Isso aumenta a produtividade e reduz a dependência de pacotes de terceiros.
II. Listas e filas são estruturas de dados similares. O que as diferencia é o protocolo de adição e remoção de elementos. Listas podem ter elementos inseridos ou removidos de qualquer posição, enquanto, nas filas, os elementos são inseridos no final e removidos do início.
III. Além das listas, Java disponibiliza uma estrutura chamada “array”. Essa estrutura armazena dados de um mesmo tipo. Diferente de uma lista, que pode ter seu tamanho alterado, um array tem seu tamanho definido na sua criação. Um array que possui outros arrays em suas posições é chamado de array multidimensional.
IV. Filas são implementadas utilizando-se o protocolo FIFO (first-in-first-out), ou seja, o primeiro a entrar é o primeiro a sair. Esse protocolo é mantido mesmo que a fila implementada tenha prioridades diferentes para os elementos.

É correto o que se afirma em: 

  • A III e IV
  • B I e II
  • C II e IV
  • D I e IV
  • E II e III