Exercício 1

  1. Considere o TAD fila e a implementação dada na teórica (ficheiros: tad_fila.h, tadfila.c e fila_main.c):

    1. Altere a disciplina da fila, que é fifo (primeiro a entrar é o primeiro a sair) para lifo (o primeiro a entrar é o último a sair).

    2. Implemente a operação remove valor, que deve remover o valor indicado da fila.

    3. Implemente a operação insere_apos valor1 valor2, que deve inserir o valor1 após o valor2 na fila.

    4. Reimplemente o TAD fila usando os seguintes tipos para lista, fila:
      struct lista{int val[34];}
      
      struct fila {int cabeca, cauda;};
      

      Implementando a nova operação fila_cheia que retorna True quando a fila tem 34 valores.

    5. Reimplemente o TAD fila com as operações remove valor e insere_apos valor1 valor2, usando o seguinte tipo para lista:

      struct lista{ int val;
        lista *prox;
        lista *ant;};
      

    6. Para cada implementação do tipo fila indique a complexidade (função do número de elementos na fila) da sua implementação das operações sobre o tipo fila.