1. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA - IFMA
Curso: Sistemas de Informação
Algoritmos e Estrutura de Dados – Prof. Gentil Cutrim Serra Jr
1ª Avaliação – 17/Mar/2014
Aluno: ________________________________________________________
1) Seja uma função de utilização (considere as operações predefinidas para uma TAD Lista)
denominada de intercala(l1,l2,l3) tal que, recebendo uma lista l1 como entrada, copia
os elementos das posições ímpares (1,3,5, …) para a lista l2 e copia os elementos das posições
pares para a lista l3, preservando os dados de l1 (2pt).
int intercala(tipo_lista l1, tipo_lista *l2, tipo_lista *l3);
2) Conforme mostrado em sala de aula, escreva uma função de implementação que deleta todos os
elementos de uma lista alocada dinamicamente, sem deixar espaços de memória inutilizados (1pt).
3) Conforme mostrado em sala de aula, escreva uma função de implementação que inverte a ordem
dos nodos de uma lista encadeada dinamicamente (a primeira passa a ser a última, a segunda passa a
ser a penúltima etc.). Faça isso usando os ponteiros (1pt).
Para as próximas duas questões, considere a função pesquisaBinaria() que realiza uma
busca binária em um vetor de números inteiros.
int pesquisaBinaria (int k[], int chave_pesq, int inicio, int fim)
{
int meio;
while (inicio<=fim)
{
meio=(inicio+fim)/2;
if (chave_pesq==k[meio])
return meio;
else if (chave_pesq<k[meio])
fim=meio1;
else
inicio=meio+1;
}
return 1;
}
4) Dada a função pesquisaBinaria(), mude o seu conteúdo de maneira que a sua forma de
execução seja feita recursivamente (2pt).
5) Dada a função pesquisaBinaria(), refaça seu código (interativo ou recursivo) para realizar
uma busca em uma TAD Lista (considere as funções de implementação). Para isso, o vetor k[]
deverá ser substituído por um parâmetro do tipo_lista (2pt).
6) Dada uma lista de alunos lstAluno (codigo, nome e nota), implementada como um TAD,
escreva uma função que adiciona pontos para os alunos conforme a regra a seguir: (1pt):
- 1 ponto para os alunos com nota entre 0 e 4,99;
- 0,5 ponto para os alunos com nota entre 5 e 9;
7) Dada uma lista seqüencial lstClientes, onde cada elemento da lista é implementado como
um registro que contém os campos: codigo, nome, mesAniversario, considere que essa
lista já possui vários elementos incluídos. Faça uma rotina para realizar uma cópia desta lista para
uma outra lista lstCli2, copiando apenas os elementos com mês de aniversário igual a 12 (2pt).