Riutilizzate e adattate quanto sviluppato nell'esercizio "Tra a e b" e nell'esercizio "Raccolta di bestseller" in modo da rendere più efficiente la gestione dei dati relativi ai libri più venduti.
Dovete scrivere un programma che legga una sequenza di comandi, tra i seguenti:
+ bestseller
: legge e memorizza i dettagli relativi a un bestseller;? data
: trova il libro che ha raggiunto la vetta della classifica nel giorno data
e ne stampa i dati essenziali;- data1 data2
: trova e stampa, in ordine di data crescente, i dati essenziali di tutti i libri che hanno raggiunto la vetta della classifica tra i giorni data1
e data2
inclusi;f
: termina il programma.La memorizzazione dei dettagli relativi ai bestseller deve essere fatta tramite un albero binario di ricerca.
Non potete fare assunzioni sul numero di bestseller da memorizzare.
I formati di input e output dei comandi +
e ?
sono gli stessi già descritti nel testo dell'esercizio "Raccolta di bestseller".
Nel comando - data1 data2
, le date sono rappresentate nel formato mese/giorno/anno
e l'output è dato da una serie di righe, raccolte tra parentesi graffe, ciascuna delle quali riporta i dati essenziali di un bestseller.
Eseguendo
./soluzione
avendo nel flusso di ingresso le righe:
+ 1876 Gore Vidal Random House 4/11/1976 Fiction
+ 23337 Stephen King Scribner 11/27/2011 Fiction
+ ...and Ladies of the Club Helen Hooven Santmeyer Putnam 7/8/1984 Fiction
+ 1st to Die James Patterson Little, Brown 3/25/2001 Fiction
+ 2nd Chance James Patterson Little, Brown 3/24/2002 Fiction
+ 3rd Degree James Patterson Little, Brown 3/21/2004 Fiction
+ 4th of July James Patterson Little, Brown 5/22/2005 Fiction
+ 61 Hours Lee Child Delacorte 6/6/2010 Fiction
+ A Breath of Snow and Ashes Diana Gabaldon Delacorte 10/16/2005 Fiction
+ A Common Life Jan Karon Viking 4/29/2001 Fiction
? 6/6/2010
- 1/1/1999 5/19/2005
f
il programma emette sul flusso di uscita:
6/6/2010 - 61 Hours - Lee Child
{
3/25/2001 - 1st to Die - James Patterson
4/29/2001 - A Common Life - Jan Karon
3/24/2002 - 2nd Chance - James Patterson
3/21/2004 - 3rd Degree - James Patterson
}
Eseguendo
./soluzione
avendo nel flusso di ingresso le righe:
+ 1876 Gore Vidal Random House 4/11/1976 Fiction
+ 23337 Stephen King Scribner 11/27/2011 Fiction
+ ...and Ladies of the Club Helen Hooven Santmeyer Putnam 7/8/1984 Fiction
+ 1st to Die James Patterson Little, Brown 3/25/2001 Fiction
+ 2nd Chance James Patterson Little, Brown 3/24/2002 Fiction
+ 3rd Degree James Patterson Little, Brown 3/21/2004 Fiction
+ 4th of July James Patterson Little, Brown 5/22/2005 Fiction
+ 61 Hours Lee Child Delacorte 6/6/2010 Fiction
+ A Breath of Snow and Ashes Diana Gabaldon Delacorte 10/16/2005 Fiction
+ A Common Life Jan Karon Viking 4/29/2001 Fiction
? 6/6/2010
- 1/1/2006 5/19/2006
f
il programma emette sul flusso di uscita:
6/6/2010 - 61 Hours - Lee Child
{
}