Premoli (Normal User)
Pro
Messaggi: 108
Iscritto: 25/06/2009
|
ciao a tutti!!!
ho difficoltà ad implementare una coda di coda...
allora ho creato due struct
Codice sorgente - presumibilmente C++ |
struct ele1{ int inf; }; struct ele2{ struct ele1 *pun; struct ele2 *next; };
|
e fin qui credo che sia tutto ok (spero )
ma poi quando devo andare a caricare la coda come devo procedere? potete aiutarmi?
in attesa di una risposta vi ringrazio anticipatamente.
|
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
Postato originariamente da Premoli:
ciao a tutti!!!
ho difficoltà ad implementare una coda di coda...
allora ho creato due struct
Codice sorgente - presumibilmente C++ |
struct ele1{ int inf; }; struct ele2{ struct ele1 *pun; struct ele2 *next; };
|
e fin qui credo che sia tutto ok (spero )
ma poi quando devo andare a caricare la coda come devo procedere? potete aiutarmi?
in attesa di una risposta vi ringrazio anticipatamente. |
Dipende,
se devi fare l'inserimento degli elementi separatamente in una coda, e poi inserire la coda nella multilista, allora devi fare due normali inserimenti in coda.
Se invece devi caricare un elemento direttamente nella multilista ( si chiama cosi' questo tipo di struttura ) devi sapere anche in quale coda, quindi fare una ricerca della coda e fare un normale inserimento;
a tale scopo ti consiglio di modificare la struttura delle liste inserendo un campo per identificarle, qualcosa del genere:
Codice sorgente - presumibilmente C++ |
struct elem{ int inf; elem *next; }; struct list{ int id; elem *first; list *next; }; struct m_list{ struct list *first; };
|
|
|
ingMark (Ex-Member)
Pro
Messaggi: 176
Iscritto: 19/07/2009
|
all'inizio ti consiglio di visualizzare la tua struttura graficamente (giusto le prime volte, per renderti conto su cosa lavori).
Ad esempio io le immaginavo in questo modo.
_______________ _______________
| | | |
| Punttesta |---> | lista interna |--->
|_______________| |_______________|
|
_______|_______ _______________
| | | |
| lista esterna |---> | lista interna |--->
|_______________| |_______________|
|
|
Allora è quasi immediato capire che ti serviranno due cicli.
Uno per la lista più esterna e uno per quella più interna.
Solitamente si tratta di due cicli while (ovvero finchè il puntatore che scorre le due liste è != da NULL)
EDIT: purtroppo i rettangolini non vengono come li ho scritti :P in ogni caso penso si capisca^^
Ultima modifica effettuata da ingMark il 22/07/2009 alle 13:38 |
|
Premoli (Normal User)
Pro
Messaggi: 108
Iscritto: 25/06/2009
|
io vorrei creare una struttura del genere:
Codice sorgente - presumibilmente Plain Text |
[ ]----->[ ]---->[ ]---->NULL
| |
v v
56 8
| |
v v
6 89
| |
v v
NULL NULL
|
quindi correggo le 2 strutture così:
Codice sorgente - presumibilmente C++ |
struct elem{ int inf; struct elem *pun; }; struc elem1{ struct elem1 *next; struct elem1 *new; };
|
così potrebbe andare bene? |
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
Postato originariamente da Premoli:
io vorrei creare una struttura del genere:
Codice sorgente - presumibilmente Plain Text |
[ ]----->[ ]---->[ ]---->NULL
| |
v v
56 8
| |
v v
6 89
| |
v v
NULL NULL
|
quindi correggo le 2 strutture così:
Codice sorgente - presumibilmente C++ |
struct elem{ int inf; struct elem *pun; }; struc elem1{ struct elem1 *next; struct elem1 *new; };
|
così potrebbe andare bene? |
se la elem1 e' una lista deve avere un puntatore al primo elemento di tipo elem, inoltre non capisco cosa rappresenta il campo new |
|
Premoli (Normal User)
Pro
Messaggi: 108
Iscritto: 25/06/2009
|
scusa ho sbagliato a scrivere...
Codice sorgente - presumibilmente C++ |
struct elem{ int inf; struct elem *pun; }; struc elem1{ struct elem *next; struct elem1 *new; };
|
volevo fare così...
spero vada bene...
|
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
Postato originariamente da Premoli:
scusa ho sbagliato a scrivere...
Codice sorgente - presumibilmente C++ |
struct elem{ int inf; struct elem *pun; }; struc elem1{ struct elem *next; struct elem1 *new; };
|
volevo fare così...
spero vada bene... |
semmai il contrario, in genere con next si indica il prossimo elemento dello stesso tipo della struttura ( il puntatore, ovviamente ) per cui avresti:
Codice sorgente - presumibilmente C++ |
struct elem{ int inf; struct elem *next; }; struc elem1{ struct elem1 *next; struct elem *new; };
|
e dovrebbe andare bene; poi, ti ripeto, sarebbe utile poter identificare ogni lista, come nel mio precedente esempio, ma dipende da dove devi usarla.
Ciao.
Luigi |
|
Premoli (Normal User)
Pro
Messaggi: 108
Iscritto: 25/06/2009
|
grazie sei stato gentilissimo...
ora provo ad implementare la funzione carica...
|
|