Brizio92
20-06-2013, 14:16
Salve a tutti, vorrei capire bene come realizzare questo tipo di ADT. Concettualmente, mi sembra di aver capito che la coda circolare, rispetto a quella lineare, è realizzata sempre con array, e una volta full permette di inserire i nuovi elementi dalla prima posizione (e neanche sono sicuro che questo sia corretto :doh: )
Ora, suppongo che la differenza stia nell'implementare diversamente append e pop, che sviluppo di solito in questo modo: (con c e t la coda e la testa)
append(int a) {
C[c]=a;
c=(c+1)%N;
nelem++;
}
pop(int a) {
a=C[t];
t=(t+1)%N;
nelem--;
}
(La coda la sviluppo come classe, quindi queste le uso come funzioni membro)
Cosa devo cambiare a queste funzioni affinché la coda abbia un comportamento circolare?
Mi sta bene anche qualche suggerimento, l'importante è capire come farla :)
Grazie in anticipo!
Ora, suppongo che la differenza stia nell'implementare diversamente append e pop, che sviluppo di solito in questo modo: (con c e t la coda e la testa)
append(int a) {
C[c]=a;
c=(c+1)%N;
nelem++;
}
pop(int a) {
a=C[t];
t=(t+1)%N;
nelem--;
}
(La coda la sviluppo come classe, quindi queste le uso come funzioni membro)
Cosa devo cambiare a queste funzioni affinché la coda abbia un comportamento circolare?
Mi sta bene anche qualche suggerimento, l'importante è capire come farla :)
Grazie in anticipo!