PDA

View Full Version : [C++] coda di priorità


mistergks
23-04-2013, 12:09
Il seguente esercizio chiede di fare una classe coda..
La mia domanda é: ma la coda é gia implementata come le list?! E quindi posso usarla cosi?(queue <int> coda).

Utilizzare l&rsquo;ereditarietà per realizzare l&rsquo;interfaccia della classe CodaPerPrimaGradiAlti che implementa una coda di priorità di Marinai, in cui i marinai che entrano sono serviti in base al loro ruolo (da marinaio semplice ad ammiraglio) e, a parità di grado, nel consueto ordine (FIFO).

Beh credo che la soluzione sia questa:

CodaPerPrimaGradiAlti : public Marinaio{

Public:
CodaPerPrimaGradiAlti();
Marinaio next();
Void push();

Private:
List <Marinaio> marinai;
};

mistergks
23-04-2013, 14:49
Up

Inviato dal mio GT-I9003 usando Tapatalk

tomminno
23-04-2013, 15:32
Il seguente esercizio chiede di fare una classe coda..
La mia domanda é: ma la coda é gia implementata come le list?! E quindi posso usarla cosi?(queue <int> coda).

Utilizzare l&rsquo;ereditarietà per realizzare l&rsquo;interfaccia della classe CodaPerPrimaGradiAlti che implementa una coda di priorità di Marinai, in cui i marinai che entrano sono serviti in base al loro ruolo (da marinaio semplice ad ammiraglio) e, a parità di grado, nel consueto ordine (FIFO).

Beh credo che la soluzione sia questa:

CodaPerPrimaGradiAlti : public Marinaio{

Public:
CodaPerPrimaGradiAlti();
Marinaio next();
Void push();

Private:
List <Marinaio> marinai;
};


list non è una coda, invece queue lo è.
La tua classe è sbagliata: una CodaPerPrimaGradiAlti (che nome orrendo!) non è un Marinaio!
L'esercizio chiede un'altra cosa riguardo all'ereditarietà. Ma essendo un esercizio lascio a te capire cosa ;)
Infine push mi sa che gli manca qualcosa, oltre a mancare l'intera implementazione della coda a priorità.

mistergks
23-04-2013, 15:45
CODE]
CodaPerPrimaGradiAlti : public list <Marinaio> {

Public:
CodaPerPrimaGradiAlti();
Marinaio next();
Void push(Marinaio m);

};
[/CODE]


Ora puo andare? L esercizio richiede solo l'interfaccia della classe .h .
Ma la coda non si fa con le liste?!
O é una struttura a parte? Questo non capisco!
In pratica é come se mi fosse richiesta l' mplementazione della classe list vero?!

The_ouroboros
24-04-2013, 06:56
[ot]
ma usate i nomi canonici per gli ADT.
Non si può sentire coda :doh:

mistergks
24-04-2013, 11:31
[ot]
ma usate i nomi canonici per gli ADT.
Non si può sentire coda :doh:

Cioe? Queue?!

Inviato dal mio GT-I9003 usando Tapatalk

mistergks
24-04-2013, 14:48
leggevo che code e pile(stack) non sono dei veri container ma degli adattatori. Inoltre, non hanno iteratori e quindi non si possono usare su di esse!
E poi anche che possono essere create con liste o vector (tramite ereditarietá ) . Altrimenti di default usano i deque.
Confermate?!