U
Utente cancellato 359755
Ospite
Salve, vado dritto al punto senza perdermi in inutili convenevoli. Sto studiando il tipo di dato CODA, ho capito che tipo di dato è, che si accede in modalità FIFO ecc, tuttavia nell'esempio che è riportato non riesco a comprendere come funzionano e che svolgono due sottoprogrammi, quindi per favore potreste spiegarmi cosa fanno? In particolare void insert e void remove. Grazie per l'aiuto
C:
int CodaPiena(int head, int tail) {
int piena=0;
if( ((tail+1)% MaxElem) ==head) piena=1; // coda su array circolare
return(piena);
}
void insert(int coda[], int head, int *tail, int elem) {
if( CodaPiena(head, *tail)==1) {
printf("La coda e' piena. Inserimento non effettuato.\n");
}
else {
coda[*tail] = elem;
*tail=*tail+1;
*tail= (*tail) % MaxElem; // implementazione ad array circolare
}
}
int CodaVuota(int head, int tail) {
int vuota=0;
if( head==tail ) vuota = 1; // coda su arraycircolare
return(vuota);
}
void remove(int coda[], int *head, int tail, int *elem) {
if ( CodaVuota(*head, tail) == 1) {
printf("La coda e’ vuota. Rimozione non effettuato\n");
}
else {
*elem= coda[*head];
*head= *head+ 1;
*head= (*head)%MaxElem; }
}
Ultima modifica da un moderatore: