Teste de envio
2. Escreva uma versão da função busca para listas.
3. [Mínimo] Escreva uma função que encontre uma célula de conteúdo mínimo. Faça duas versões: uma iterativa e uma recursiva.
4. Escreva uma função que faça um busca em uma lista crescente. Faça versões recursiva e iterativa.
5. [Ponto médio de uma lista] Escreva uma função que receba uma lista encadeada e devolva o endereço de um nó que esteja o mais próximo possível do meio da lista. Faça isso sem contar explicitamente o número de nós da lista.
6. Verificação do tamanho. Compile e execute o seguinte programa: typedef struc cel celula; struct cel { int conteudo; celula *prox; }; int main( void) { printf( "sizeof (celula) = %d\n", sizeof (celula)); return 0; }
7. Por que a seguinte versão de insere não funciona? void insere( int x, celula *p) { celula nova; nova.conteudo = x; nova.prox = p->prox; p->prox = &nova; }
8. Escreva uma função que insira um novo elemento em uma lista encadeada.
9. Critique a seguinte versão da função remove: void remove( celula *p, celula *ini) { celula *morta; morta = p->prox; if (morta->prox == NULL) p->prox = NULL; else p->prox = morta->prox; free( morta); }
10. Escreva uma função que copie um vetor para uma lista encadeada. Faça duas versões: uma iterativa e uma recursiva.
11. Escreva uma função que copie uma lista encadeada para um vetor. Faça duas versões: uma iterativa e uma recursiva.
12. Escreva uma função que faça uma cópia de uma