Vous êtes sur la page 1sur 1

LISTA DE EXERCÍCIOS DE RECURSÃO

1. Faça a função recursiva paresSimetricos() que retorna o número de vezes que em posições simétricas
de uma lista seqüencial de inteiros há números pares. Escreva, também, a função chamaPS() que
recebe a lista e faz a chamada externa de paresSimétricos().

2. Faça a função recursiva temVizinhosImpares() que retorna 1 se em uma lista de inteiros há dois números
consecutivos ímpares, 0 caso contrário.. Escreva, também, a função chamaTVI() que recebe a lista e faz
a chamada externa de temVizinhosImpares().

3. Faça a função recursiva vizinhosIguais() que retorna o número de vezes que em uma lista de inteiros há
dois números consecutivos iguais. Escreva, também, a função chamaVI() que recebe a lista e faz a
chamada externa de vizinhosIguais().

4. Faça a função recursiva achaMaiorSalto() que retorna a maior diferença entre dois números consecutivos
de uma lista seqüencial de inteiros classificada crescentemente e quantas vezes esta diferença aparece
na lista. Escreva, também a função chamaMS() que recebe a lista e faz a chamada externa de
achaMaiorSalto().

5. Faça a função recursiva posMenorChave() que retorna a menor chave de uma lista seqüencial de inteiros
e exibe as posições na lista que esta chave aparece. Escreva, também, a função chamaMC() que recebe
a lista e faz a chamada externa de posMenorChave().

6. Escreva em C a função recursiva contMen() que retorna a média dos elementos de uma lista de inteiros e
o número de elementos maiores do que a média.

7. Escreva a função recursiva copiaInvertida() que recebe uma lista e faz uma cópia da lista original, mas
com os nós na ordem inversa. Sua função deve retornar o número de nós copiados com sucesso. Você
deve fazer também a função chamaCI() que recebe a lista e faz a chamada externa de copiaInvertida().

8. Escreva as versões recursivas das funções:


1) Verificar se uma lista é sub-lista de outra
2) Verificar se a lista está ordenada não decrescentemente.
3) Inverter a lista.
4) Ordene a lista pelo método inserção em ordem não crescente
5) Ordene a lista pelo método da bolha em ordem não crescente
6) Ordene a lista pelo método de seleção em ordem não crescente

9. Escreva, em C, as funções recursivas que unem duas listas classificadas (MERGE) considerando que:
1. As duas listas não têm elementos em comum
2. As duas listas tem elementos comuns, mas a resultante pode ter repetição
3. As duas listas tem elementos comuns, mas a resultante não pode ter repetição
Está proibido o uso de loops

10. Faça a função recursiva menorMaiorChave() que retorna a menor e a maior chave de uma lista
seqüencial de inteiros. Escreva, também, a função chamaMMC() que recebe a lista e faz a chamada
externa de menorMaiorChave().

11. Faça a função recursiva quantasSlClassif() que retorna o número de sub-listas classificadas
crescentemente há em uma lista desclassificada. Escreva, também, a função que recebe a lista e faz a
chamada externa.

12. Faça a função recursiva exibeAnterior() que exibe, na ordem inversa, a sub-lista que antecede a
ocorrência do primeiro número par. Escreva, também, a função que recebe a lista e faz a chamada
externa.

FAC/047

Vous aimerez peut-être aussi