E08: Teste seus conhecimentos sobre listas encadeadas

E08.1  Escreva uma função recursiva que conte o número de células de uma lista encadeada. Suponha que as células da lista são do tipo celula:

    struct caixa {
       int           num;
       struct caixa *prox;
    };
    typedef struct caixa celula;

e que a lista não tem célula-cabeça.

E08.2  Escreva uma função que remova a primeira célula de uma lista encadeada sem cabeça. As células da lista são do tipo celula definido em E08.1.

E08.3  Escreva uma função que remova a k-ésima célula de uma lista encadeada sem cabeça. As células da lista são do tipo celula definido em E08.1. Suponha que k ≥ 2.

E08.4  Escreva uma função recursiva que copie o conteúdo de um vetor de números inteiros para uma lista encadeada (preservando a ordem dos elementos).