Morpheus@
06-12-2007, 18:18
Ciao a tutti sono inciampato in un problema che non so risolvere.
Gli argomenti che adesso descrivo riguardano: Coda circolare,Grafo e Pila.Quindi se qualcuno potrebbe darmi una mano.....
Di seguito vi descrivo l'esercizio in cui sono inciampato:
Un dispositivo è composto dalle seguenti strutture:
-una coda circolare in grado di memorizzare N pacchetti
-un grafo G=(V,E) rappresentato mediante liste di adiacenza
-due pile : A e B
Ogni pacchetto è caratterizzato da un "indirizzo mittente",un "indirizzo destinatario" ed un campo payload di tipo generico struct data.
Compito del dispositivo è quello di smistare i pacchetti prelevandoli(mediante un ciclo infinito)dalla coda circolare e inserendoli nelle pile in base alla topologia del grafo.In particolare,i pacchetti in cui il mittente è un vicino del destinatario devono essere inseriti nella Pila A e tutti gli altri nella Pila B.
Io praticamente non so come andare a prelevare questi pacchetti dalla coda per inserirli nella pila.
Volevo andarli a prelevare creandomi una funzione a parte che la vado a richiamare prima che il pacchetto sia stato cancellato tramite la funzione Dequeue ma non ne sono sicuro che funzioni.
Qualcuno può aiutarmi??Lo ringrazio sin da adesso
Gli argomenti che adesso descrivo riguardano: Coda circolare,Grafo e Pila.Quindi se qualcuno potrebbe darmi una mano.....
Di seguito vi descrivo l'esercizio in cui sono inciampato:
Un dispositivo è composto dalle seguenti strutture:
-una coda circolare in grado di memorizzare N pacchetti
-un grafo G=(V,E) rappresentato mediante liste di adiacenza
-due pile : A e B
Ogni pacchetto è caratterizzato da un "indirizzo mittente",un "indirizzo destinatario" ed un campo payload di tipo generico struct data.
Compito del dispositivo è quello di smistare i pacchetti prelevandoli(mediante un ciclo infinito)dalla coda circolare e inserendoli nelle pile in base alla topologia del grafo.In particolare,i pacchetti in cui il mittente è un vicino del destinatario devono essere inseriti nella Pila A e tutti gli altri nella Pila B.
Io praticamente non so come andare a prelevare questi pacchetti dalla coda per inserirli nella pila.
Volevo andarli a prelevare creandomi una funzione a parte che la vado a richiamare prima che il pacchetto sia stato cancellato tramite la funzione Dequeue ma non ne sono sicuro che funzioni.
Qualcuno può aiutarmi??Lo ringrazio sin da adesso