Vorrei un vostro consiglio,su questa funzione da simulare,è molto importante!

codice:
f(int *a, int i, node *lis)
	{ int x; x=1;
	   if (lis != NULL) 
	   	if (lis->data < i) {*a= (*a)+x; printf(“%d”,*a); f(a,i+2,lis->next);}
	  	 else if (lis->data > i) {f(a,i, lis->next); *a=(*a)+3; printf(“%d”,x);}
	  	 else if (lis->data==i) printf(“%d”,*a);}

s=0; x=0; y=3; f(&x,y,L1);
elementi lista 7->2->5->4
si inizia
s=0
x=0
y=3
L1
poi
a
i=3
lis punta 7
qui serve altro?
ir m(valore ritorno)