• Nenhum resultado encontrado

Lista de Exercício Final

N/A
N/A
Protected

Academic year: 2021

Share "Lista de Exercício Final"

Copied!
6
0
0

Texto

(1)

Lista de Exercícios - Revisão 2º. Bimestre ED

1) Desenhe uma árvore binária para cada item a seguir mantendo a propriedade de, em um percurso em Ordem Simétrica, os elementos serem exibidos em ordem crescente e, em seguida, aplique os três percursos para exibir os elementos. a) 25, 45, 83, 16, 36, 9, 13, 18, 64, 21, 17, 39, 5, 30, 92

b) 123, 201, 46, 17, 155, 273

c) 85, 118, 97, 67, 11, 136, 26, 106, 71

2) Desenhe uma árvore binária para cada item a seguir mantendo a propriedade de, em um percurso em Ordem Simétrica, os elementos serem exibidos em ordem decrescente e, em seguida, aplique os três percursos para exibir os elementos. a) 25, 45, 83, 16, 36, 9, 13, 18, 64, 21, 17, 39, 5, 30, 92

b) 123, 201, 46, 17, 155, 273

c) 85, 118, 97, 67, 11, 136, 26, 106, 71

3) Desenhe uma árvore binária para cada item a seguir mantendo a propriedade de, em um percurso em Ordem Simétrica, os elementos serem exibidos em ordem alfabética e, em seguida, aplique os três percursos para exibir os elementos. a) Márcia, Daniela, Pedro, Orlando, Luiz, Ana, Olivia, Carlos, Aldria

b) Denise, Célia, Clélia, Lúcia, Elaine, Bruna 4) Dada a árvore, mostre os três percursos:

a) b)

c)

d)

(2)

5) Desenhe uma árvore binária para cada item a seguir mantendo a propriedade de, em um percurso em Ordem Simétrica, os elementos serem exibidos em ordem crescente e, em seguida, aplique os três percursos para exibir os elementos e sua quantidade de ocorrências. Os elementos repetidos devem ter a quantidade de ocorrências guardada no nó.

a) 25, 45, 83, 16, 36, 9, 83, 13, 25, 18, 64, 21, 17, 83, 39, 5, 30, 92, 64, 16, 83 b) 123, 201, 46, 17, 155, 273, 201, 17, 123, 46, 201, 273, 155, 46

c) 85, 118, 97, 67, 11, 136, 26, 106, 71, 85, 71, 97, 118, 85, 97, 71, 11

6) Implemente uma classe em Java para uma Árvore Binária com elementos do tipo String. A repetição de elemento deve ser controlada com um atributo para sua contagem. A classe deve possuir construtor, método para adicionar elemento, método para remover elemento (decrementando a contagem enquanto ela for maior que 1) e um método para cada percurso.

7) (ENADE-ADS-2014) Uma função é denominada recursiva quando ela é chamada novamente dentro de seu corpo. Implementações recursivas também tendem a ser menos eficientes, porém facilitam a codificação e seu entendimento.

CELES, W.; CERQUEIRA, R.; RANGEL, J.L. Introdução a estruturas de dados. Rio de Janeiro, 2004 (adaptado).

Considere a função recursiva f(), a qual foi escrita em linguagem C:

1. int f ( int v[], int n){

2. if(n== 0) 3. return 0; 4. else { 5. int s; 6. s = f (v, n-1); 7. if (v[n-1] > 0) s = s + v [n-1]; 8. return s; 9. } 10. }

Suponha que a função f() é acionada com os seguintes parâmetros de entrada: f({2,-4, 7, 0, -1, 4}, 6);

Nesse caso, o valor de retorno da função f() será: a) 8

b) 10 c) 13 d) 15 e) 18

(3)

8) (ENADE-ADS-2014) Existem várias maneiras de se percorrer uma árvore binária. A função a seguir, escrita em pseudo-código, percorre uma árvore na ordem esquerda-raiz-direita, conhecida por varredura e-r-d recursiva. A função erd() recebe por parâmetro a raiz r de uma árvore, e faz uso de seus elementos esq, dir e cont, que representam, respectivamente, ponteiros para uma sub-árvore à direita e de r e o conteúdo de r respectivamente.

função erd (árvore r) { se ( r != NULO) { erd( r -> esq); escreva (r -> conteúdo); erd (r -> dir); } }

Considere a árvore binária a seguir.

A sequência correta de exibição do conteúdo da árvore utilizando a função erd() é: a) 5, 3, 8, 0, 1, 7, 2

b) 0, 1, 7, 2, 3, 8, 5 c) 0, 3, 5, 1, 7, 8, 2 d) 0, 3, 1, 5, 7, 8, 2 e) 2, 7, 8, 5, 0, 3, 1

(4)

9) Qual é o valor de retorno da função a seguir, caso n=27? int recursao (int n){

if (n <= 10) { return n * 2; } else {

return recursao ( recursão (n/3) ); } } a) 8 b) 9 c) 12 d) 16 e) 18

10) Mostre passo-a-passo a execução de cada método a seguir em uma lista ligada (lista1). Considere que a lista ligada está vazia.

a) lista1.adicionaInicio(73) b) lista1.adicionaFinal(45) c) lista1.adicionaInício(98) d) lista1.remove(2) e) lista1.adicionaInício(22) f) lista1.adiciona(2,33) g) lista1.removeFinal() h) lista1.removeInício()

11) Mostre passo-a-passo a execução de cada método a seguir em uma lista ligada (lista2). Considere que a lista ligada já possui dois nós com os elementos 101 e 87, respectivamente.

a) lista2.adicionaInicio(15) b) lista2.adicionaFinal(44)

(5)

c) lista2.removeInício() d) lista2.adiciona(2,31) e) lista2.adicionaInício(92) f) lista2.remove(3) g) lista2.removeFinal() h) lista2.adicionaInício(98)

12) Implemente uma pilha com alocação dinâmica de memória para elementos do tipo String

13) Implemente uma fila com alocação dinâmica de memória para elementos do tipo String

14) Implemente uma lista ligada, com todos os métodos necessários para o seu funcionamento, para inserir texto em ordem alfabética e remover um determinado texto passado por parâmetro ao método.

15) Implemente uma fila circular com alocação dinâmica de memória para elementos do tipo String

16) Implemente uma lista duplamente encadeada, com todos os métodos necessários para o seu funcionamento. Nesta lista poderão ser adicionados e removidos elementos do tipo double, no início e no final.

17) ENADE2011-No desenvolvimento de um software que analisa bases de DNA, representadas pelas letras A, C, G, T, utilizou-se as estruturas de dados: pilha e fila. Considere que, se uma sequência representa uma pilha, o topo é o elemento mais à esquerda; e se uma sequência representa uma fila, a sua frente é o elemento mais à esquerda. Analise o seguinte cenário: “a sequência inicial ficou armazenada na primeira estrutura de dados na seguinte ordem: (A,G,T,C,A,G,T,T). Cada elemento foi retirado da primeira estrutura de dados e inserido na segunda estrutura de dados, e a sequência ficou armazenada na seguinte ordem: (T,T,G,A,C,T,G,A). Finalmente, cada elemento foi retirado da segunda estrutura de dados e inserido na terceira estrutura de dados e a sequência ficou armazenada na seguinte ordem: (T,T,G,A,C,T,G,A)”. Qual a única sequência de estruturas de dados apresentadas a seguir pode ter sido usada no cenário descrito acima? Justifique a sua resposta.

a) Pilha - Fila – Pilha b) Pilha - Pilha – Pilha c) Fila - Pilha – Fila d) Fila - Fila – Pilha e) Fila - Pilha – Pilha

(6)

18) Considere que uma tabela de espalhamento possui um vetor do tipo abstrato de dados ListaLigada, com duas posições, e que nela esteja armazenada uma sequência de quadrado de números inteiros como 1, 4, 9, ..., n2. Cada número da sequência é a chave enviada para a função de espalhamento que deverá calcular e devolver o índice em que a chave será armazenada. Implemente em Java a classe completa da tabela de espalhamento para este problema.

19) Considere que uma tabela de espalhamento armazena uma sequência de quadrado de números inteiros como 1, 4, 9, ..., n2, sendo que n2 é a chave enviada para a função de espalhamento. A função de espalhamento para esta tabela é:

public int funcaoEspalhamento(int chave){ return chave % 2;

}

Selecione a alternativa que indica a implementação mais adequada da tabela de espalhamento para a função de espalhamento acima:

a) A classe implementada para esta tabela de espalhamento possui apenas um atributo que é um vetor do tipo int de capacidade máxima 2. Dessa forma não ocorrerá colisão porque o método funcaoEspalhamento implementado não retornará o mesmo índice para chaves diferentes.

b) A classe implementada para esta tabela de espalhamento possui apenas um atributo que é um vetor do tipo int de capacidade máxima 3. Dessa forma não ocorrerá colisão porque o método funcaoEspalhamento implementado não poderá retornar o mesmo índice para mais de uma chave.

c) A classe implementada para esta tabela de espalhamento possui apenas um atributo que é um vetor do tipo ListaLigada de capacidade máxima 2. Dessa forma não ocorrerá colisão porque mesmo que o mesmo índice seja devolvido para chaves diferentes, a lista ligada poderá guardar mais de um valor.

d) A classe implementada para esta tabela de espalhamento possui apenas um atributo que é um vetor do tipo ListaLigada de capacidade máxima 3. Dessa forma ocorrerá colisão.

Referências

Documentos relacionados

4.5 Conclusões: Este trabalho mostrou um modelo criado para representar uma linha de transmissão monofásica através de uma cascata de circuitos π, cujos parâmetros longitudinais

O score de Framingham que estima o risco absoluto de um indivíduo desenvolver em dez anos DAC primária, clinicamente manifesta, utiliza variáveis clínicas e laboratoriais

Discussion The present results show that, like other conditions that change brain excitability, early environmental heat exposure also enhanced CSD propagation in adult rats.. The

Na sequência da análise de risco efetuada pode-se concluir que existem riscos de contaminação muito reduzidos quer no âmbito, quer em perigosidade para o

Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos fundos Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos

Durante as nictemerais, os valores do fósforo total e do fosfato total nos dois viveiros apresentaram também valores acima do recomendado pela GAA, exceto para o fosfato total na

Distribuição espectral dos sistemas de iluminação LED e do controle Observa-se na Figura 12A, a análise de componentes principais, relacionado à biometria das mudas pré-brotadas

A respeito das propostas de desregulamentação nas relações de trabalho e da seguridade social no Brasil, percebidas tanto nas defesas do Banco Mundial quanto nas