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:

  1. 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)
  2. 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)
  3. 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)
  4. 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)
  5. Sejam as funções de n:
  6. 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)

  7. 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;;

}

}

}

}