in c++ puoi utilizzare la libreria STD e i suoi algoritmi.

Comunque lo stesso risultato lo ottieni con la qsort., ma non puoi utilizzare una lista concatenata, ma devi crearti una array di SQUADRA.
Mi correggo la funzione di comparazione che se applicata ai punti e non ai nome diviene

codice:
static int
cmpsquadre (const void *p1, const void *p2)
{

   SQUADRA *s1 = ( SQUADRA * ) p1;
   SQUADRA *s2 = ( SQUADRA * ) p2;


   return ( s1->punti - s2->punti );

}