Verificare la collisione è facile: due circonferenze si intersecano se la distanza tra i centri è minore della somma dei raggi.

codice:
int collisione(palla_t palla1, palla_t palla2)
{
    if ( distanza(palla1.centro, palla2.centro) < (palla1.raggio + palla2.raggio) )
        return 1;
    else
        return 0;
}
La funzione che vuoi tu è semplice (pseudocodice):

codice:
FOREACH (palla1 in lista_palle)
{
    FOREACH (palla2 in lista_palle)
    {
        if (palla1 == palla2) continue;

        if (collisione(palla1, palla2))
        {
             cambia_colore(palla1);
             elimina_palla(palla2);
        }
    }
}