ho risolto cosi va bene? dal main chiamo stampa_in_ordine.

Codice PHP:
void stampa_in_ordine(stack *stk)
{
     
stampa_pari(stk);
     
stampa(stk);
}

void stampa_pari(stack *stk)
{
     if(
IsEmpty(stk)) return;
     {
       
int y=pop(stk);
       
stampa_pari(stk);
       if (
y%2==0printf("%d ",y);
       else 
push(stk,y);
     }
}

void stampa(stackstk)
{
  if(
stk->cnt==0) return;
  else
  {
    
int tmp=pop(stk);
    
stampa(stk);
    
printf("%d ",tmp);
    
push(stk,tmp);
  }    

c'è un modo un po piu "compatto" per fare un programma del genere? magari usando una sola funzione. L'ideale sarebbe ordinare i valori nello stack come vuole l'esercizio e poi stamparli normalmente.