ti ci vorrà un controllo... se lst (è un campo dati della classe? è il puntatore al primo elemento?) è null non c'è nessun elemento.
in tal caso farai così:

codice:
void Bastoncino::Push(int elemento){
      stack *tmp=new stack;
      tmp->raggio=elemento;
	  tmp->succ=lst;
      tmp->prec=lst;
	  lst=tmp;

   }
credo che non ti serva nemmeno l'else perchè lo fai sempre puntare a lst... se è vuota punterà a null, se invece c'è qualcosa punterà all'indirizzodi lst, che diventerà quindi il secondo elemento...

ps: ma quel lst=tmp sicuro che modifichi il puntatore lst anche quando restituisce il controllo al chiamante? Secondo me o usi un return con assegnazione oppure devi usare un puntatore a puntatore.

sempre se non sbaglio...