MAC122 - Lista 1 - Listas ligadas

  1. Escreva uma função
       int conta (apont p, int x) 
    
    que devolve o número de vezes que o elemento x aparece na lista apontada por p. Suponha que a lista é uma lista ligada circular sem cabeça.

  2. Escreva uma função
       apont remove (apont p, int x) 
    
    que remove a primeira aparição de x na lista apontada por p e devolve o início da lista resultante. Suponha que a lista é uma lista ligada sem cabeça.

    Reescreva a função considerando que a lista é uma LL circular com cabeça. Neste caso, a função pode ser void (não é necessário devolver nada.)

  3. Escreva uma função
       int soma (apont p) 
    
    que soma o conteúdo de todos os elementos de uma lista. A lista está armazenada em uma LL sem cabeça apontada por p.

  4. Escreva uma função
       int acrescenta (apont p, int delta)
    
    que soma delta em cada elemento da lista apontada por p, removendo células cujo resultado da soma seja nulo. Suponha que a lista ligada tem cabeça de lista.

  5. Um conjunto de números inteiros pode ser armazenado em uma lista ligada. Escreva uma função que recebe como parâmetros dois apontadores, p e q, para o ínicio das listas ligadas que armazenam cada uma um conjunto de números inteiros, e devolve o apontador para uma nova lista ligada com a interseção dos dois conjuntos. Você não deve destruir as listas dadas. Você deve alocar novas células para compor a lista resultante. Sua função deve ter o protótipo abaixo:
       apont interseccao (apont p, apont q)
    
    e deve devolver o início da lista resultante.

  6. Escreva uma função
       void tira_repetição (apont p) 
    
    que remove todos os elementos repetidos da lista apontada por p, deixando apenas uma cópia de cada um. Suponha que a lista tem cabeça de lista.

  7. Escreva uma função
       apont ordena (apont p) 
    
    que recebe o apontador de uma lista ligada de inteiros e rearraja essa lista de forma que ela esteja ordenada, devolvendo o início da lista resultante. Não troque o conteúdo das células. Apenas atualize os apontadores para ordenar a lista (imagine que as informações guardadas em cada célula da lista são muitas e que seria muuuuito caro trocar o conteúdo de duas células).

Last modified: Thu Mar 22 07:19:32 BRT 2007