Algoritmos e Estruturas de Dados
Lista de Exercícios 1
Data de Distribuição: 08 de abril de 1999
Data de Entrega: 29 de abril de 1999
Orientações:
- Esta lista deve ajuda-lo na preparação para o primeiro exercício escolar.
- Esta lista é individual. Em caso de cópia será atribuída a nota 0 (zero) a todas as listas idênticas.
- Todas as implementações devem ser feitas em C, o executável disponibilizado em disquete, devidamente documentado, que possa ser executado pelos monitores, e devem ter uma interface que permita o teste da solução.
- A solução de cada questão deve ser entregue junto com o código fonte, tudo devidamente organizado e comentado.
- Cada dia de atraso implica em 0,5 ponto a menos na nota desta lista.
- A solução deve ser entregue na Data de Entrega durante a aula.
- Esta lista contem 5 questões.
- Escolha uma implementação do TDA lista (via
tabelas ou
via ponteiros) e faça um programa para manipular uma lista que inclua as operações INSERIR, LOCALIZAR, ACEDER, SUPRIMIR, SEGUINTE, PRECEDENTE, ZERAR, PRIMEIRO, LISTAR (3,0)
- A partir da implementação escolhida na
questão 1 (via tabelas ou via ponteiros), faça um programa para manipular uma fila que inclua as operações ZERAR, CABEÇA, ENFILAR, DESENFILAR, VAZIO. (1,0)
- Escolha uma implementação do TDA arvore (via
tabelas ou
via ponteiros) e faça um programa para manipular uma arvore que
inclua as operações PAI, PRIMEIRO_FILHO, IRMAO_DIREITO,
ETIQUETA, RAIZ, ZERAR (2,0)
- A partir da implementação escolhida na
questão 3 (via tabelas ou via ponteiros), faça um programa para efetuar um percurso infixado de uma arvore.. (2,0)
- Sejam as funções de n:
g1(n) = n2 se n é par e n ³
0; n3 se n é impar e n ³
1
g2(n) = n se 0 £
n £
100; n3 se n > 100
g3(n) = n2,5
Indicar para cada par i e j distintos se gi(n) é em O(gj(n)) e se gi(n) é em W
(gj(n)) (1,0)
- Usando a notação O forneça, em
função de n, a complexidade no pior dos casos da função seguinte (1,0):
void oddidonc (int n)
{
int i, j, x, y;
for(i = 1; i <= n; i++)
{
if(odd(i))
{
for(j = 1; j <= n; j++)
{
x += 1;
}
for(j = 1; j <= i; j++)
{
y += 1;;
}
}
}
}