/* File: albinric.c */ /* Time-stamp: "2001-05-24 16:09:36 calvanes" */ /* Scopo: driver per le funzioni sui vettori */ typedef int TipoInfoAlbero; struct nodoAlbero { TipoInfoAlbero info; struct nodoAlbero *destro, *sinistro; }; typedef struct nodoAlbero NodoAlbero; typedef NodoAlbero *TipoAlbero; TipoAlbero RicercaAlbero(TipoAlbero A, TipoInfoAlbero elem) /* Effettua la ricerca di elem nell'albero binario di ricerca A. Il valore di ritorno e` il sottoalbero di A la cui radice e` pari ad elem, se elem e` presente in A, NULL altrimenti. */ { TipoAlbero posiz; if (A == NULL) posiz = NULL; else if (elem == A->info) /* l'elemento e` stato trovato */ posiz = A; else if (elem < A->info) /* cerca nel sottoalbero sinistro */ posiz = RicercaAlbero(A->sinistro, elem); else /* cerca nel sottoalbero destro */ posiz = RicercaAlbero(A->destro, elem); return posiz; }