Concetti Chiave

  • Definizione della struttura dati: viene utilizzata una struttura "quadro" che contiene il nome, autore, prezzo e data di un dipinto.
  • Dichiarazione della costante MAX_QUADRI: definisce il numero massimo di record nel vettore "pinacoteca", impostato a 20.
  • Funzione ricorsiva ricBin: implementa la ricerca binaria su un array di strutture "quadro", restituendo l'indice del dipinto cercato o -1 se non trovato.
  • Parametri della funzione: la funzione ricBin riceve un puntatore alla galleria, il nome del dipinto da cercare, e gli indici di inizio e fine del segmento di array.
  • Inizializzazione delle variabili: "inizio" è impostato a 0, "fine" è impostato a numQuadri-1, e "dipinto" contiene il nome del dipinto da ricercare.

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).

Definizione della struttura dati

#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);

}

}

Domande da interrogazione

  1. Qual è la funzione principale della ricerca binaria ricorsiva nel contesto del codice fornito?
  2. La funzione principale della ricerca binaria ricorsiva nel codice è trovare la posizione di un dipinto specifico all'interno di un vettore di strutture "quadro", ordinato per nome. Se il dipinto è presente, la funzione restituisce l'indice corrispondente; altrimenti, restituisce -1.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community