nikpez di nikpez
Ominide 738 punti

Scrivi una funzione C/C++ che esegue in modo ricorsivo la ricerca binaria in un vettore di record. Scrivi l’istruzione di chiamata. Dichiara, definisci la struttura dati e tutte le variabili coinvolte nella chiamata (con eventuali inizializzazioni (di variabili) che ritieni utili nella comprensione della funzione).

#define MAX_QUADRI 20
struct quadro {
char nome[25]; //chiave primaria
char autore[30];
double prezzo;
char data[9];
};

struct quadro pinacoteca[MAX_QUADRI];
int inizio=0;
int fine=numQuadri-1;
char dipinto[25];
int posiz=ricBin(pinacoteca,dipinto,inizio,fine);
int ricBin(const struct quadro *galleria, const char *dipinto, int inizio, int fine)
{
if(inizio > fine)
return -1;
else
{
int centro;
centro = (inizio + fine)/2;
if(!strcmp(galleria[centro].nome,dipinto))
return centro;
else if(strcmp(galleria[centro].nome,dipinto) > 0)
return ricBin(galleria,dipinto,inizio,centro-1);
else
return ricBin(galleria,dipinto,centro+1,fine);
}
}

Registrati via email