allora...come ti dicevo fai una chiamata ricorsiva per ciascun figlio!
ti scrivo l'algoritmo:
supponenodo di avere una struttura del genere
struct nodo{
int info;
nodo* dx,*centrale,*sx,*padre;
}; l'algo CERCA e' il seguente:

CERCA(punt,valore,flag)
if (!punt) return NULL
if (punt->info==valore) flag=true, return punt
return_value=CERCA(punt->dx,valore,flag)
if (!flag)
return_value=CERCA(punt->centrale,valore,flag)
if (!flag)
return_value=CERCA(punt->sx,valore,flag)
return return_value


Il problema grosso e' che nel caso pessimo(cioe' nel caso in cui il valore desiderato e' nella foglia in fondo a destra)la complessita' dell'algoritmo e' molto alta perche' passa per tutti i nodi dell'albero(in generale e' 3*n+1 dove n e' il numero di nodi)!
Per ovviare a cio occorrerebbe costruire l'albero in modo 'furbo'.....e la complessita' nel caso pessimo diminuirebbe di parecchio [ O(h) dove h e' l'altezza dell'albero ]
ti faccio un piccolo esempio:
in un albero (come il tuo) a 13nodi con una costruzione casuale l'algo potrebbe avere complissita' nel caso pessimo=3*13+1
in un albero a costruzione 'furba' =13

cmq forse mi sono dilungato un po' troppo ....e forse nemmeno ti interessa l'efficienza...