Você está na página 1de 3

Estruturas de Informação

Lista de exercı́cios 18

1. Imprimir posições ı́mpares

Imagine que nós temos uma lista encadeada p

p −→ 3 • 6 • 4 • ... 1 •

A tarefa consiste em

→ Imprimir os elementos que se encontram nas posições ı́mpares da lista

a) Apresente um algoritmo recursivo que resolve esse problema.


b) Análise o tempo de execução do seu algoritmo.

2. Copiar posições ı́mpares

Imagine que nós temos uma lista encadeada p

p −→ 5 • 8 • 2 • ... 20 •

A tarefa consiste em

→ Retornar uma lista com cópias dos elementos nas posições ı́mpares de p

a) Apresente um algoritmo recursivo que resolve esse problema.


b) Análise o tempo de execução do seu algoritmo.

3. Remover de todas as cópias

Imagine que nós temos uma lista encadeada p que pode conter elementos repetidos

p −→ 2 • 5 • 9 • ... 2 •

A tarefa consiste em

→ Remover todas as cópias do elemento k da lista

a) Apresente um algoritmo recursivo que resolve esse problema.


b) Análise o tempo de execução do seu algoritmo.

4. Inverter a ordem

Imagine que nós temos uma lista encadeada p

p −→ 2 • 5 • 9 • ... 2 •

1
A tarefa consiste em

→ Inverter a ordem dos elementos da lista

a) Apresente um algoritmo recursivo que resolve esse problema.


b) Análise o tempo de execução do seu algoritmo.

5. O maior elemento

Imagine que nós temos uma lista encadeada não ordenada

p −→ 12 • 4 • 3 • ... 5 •

A tarefa consiste em

→ Mover o maior elemento para a última posição da lista

a) Apresente um algoritmo recursivo que resolve esse problema.


b) Análise o tempo de execução do seu algoritmo.

6. Mover todas as cópias

Imagine que nós temos uma lista encadeada p que pode conter elementos repetidos

p −→ 2 • 5 • 2 • ... 1 •

A tarefa consiste em

→ Mover todas as cópias do elemento k para o inı́cio da lista

a) Apresente um algoritmo recursivo que resolve esse problema.


b) Análise o tempo de execução do seu algoritmo.

7. Elementos distintos

Imagine que nós temos uma lista encadeada p que pode conter elementos repetidos

p −→ 7 • 16 • 8 • ... 16 •

A tarefa consiste em

→ Determinar quantos elementos distintos existem na lista

a) Apresente um algoritmo recursivo que resolve esse problema.


b) Análise o tempo de execução do seu algoritmo.

2
8. Intercalação

Imagine que nós temos duas lista encadeada ordenadas p1 , p2

p1 −→ 3 • 8 • 12 • ... 51 •

p2 −→ 5 • 7 • 11 • ... 27 •

A tarefa consiste em

→ Combinar os elementos de p1 e p2 em uma única lista encadeada ordenada

a) Apresente um algoritmo recursivo que resolve esse problema.


b) Análise o tempo de execução do seu algoritmo.

9. O elemento central

Imagine que nós temos uma lista encadeada com n elementos

p −→ 17 • 5 • 9 • ... 3 •

A tarefa consiste em

→ Imprimir o elemento central da lista, caso n seja ı́mpar


ou dizer que esse elemento não existe, caso n seja par

a) Apresente um algoritmo recursivo que resolve esse problema.


b) Análise o tempo de execução do seu algoritmo.

10. Listas duplamente encadeadas

Imagine que nós temos uma lista duplamente encadeada ordenada

p −→ • 1 •
• 4 •
• 7 •
• 8 •
• 10 •

a) Apresente um algoritmo recursivo que implementa a operação de inserção na lista duplamente


encadeada ordenada.

b) Apresente um algoritmo recursivo que implementa a operação de remoção na lista duplamente


encadeada ordenada.

c) Apresente um algoritmo recursivo que implementa a operação de atualização na lista dupla-


mente encadeada ordenada.

d) Analise os tempos de execução dos seus algoritmos.

Você também pode gostar