Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Liste
Forum - C/C++ - Liste

Avatar
sosuke (Normal User)
Newbie


Messaggi: 1
Iscritto: 19/09/2006

Segnala al moderatore
Postato alle 21:42
Martedì, 19/09/2006
Salve a tutti... ho passato una gionata intera ad inizializzare una lista composita... ma senza risultati... il codice è il seguente:
Codice sorgente - presumibilmente C++

  1. #include<iostream.h>
  2.        
  3.         typedef struct servizio{
  4.                 int numero;
  5.                 int stato;      //0 libero, 1 occupato
  6.                 union{
  7.                         int richiesta;
  8.                         int posizione;
  9.                         int tempo;
  10.                         servizio *succ;
  11.                 } coda;
  12.                 servizio *next;
  13.         } posta;
  14.  
  15.  
  16.        
  17. void inizializza(posta *sportello);
  18.  
  19.  
  20. void main(){
  21.         posta *sportello;
  22.         sportello=NULL;
  23.  
  24.         inizializza(sportello);
  25.  
  26.         while(sportello!=NULL){
  27.                 cout<< sportello->numero;
  28.                 sportello=sportello->next;
  29.         }
  30. }
  31.  
  32.  
  33.  
  34.  
  35. void inizializza(posta *sportello){
  36. posta *temp;
  37.         int i;
  38.  
  39.         for(i=0;i<5;i++){
  40.                 sportello = new posta;
  41.                 sportello->numero = i+1;
  42.                 sportello->stato = 0;
  43.                 sportello =sportello->next;
  44.  
  45.         }
  46.         //sportello=NULL;
  47. }



Ecco quello che non riesco a fare è spostarmi da una locazione di memoria all'altra..
non ho la più pallida idea di come salvare la prima locazione di memoria della lista..
e infine non so come accedere alla "sottolista" non so come chiamarla...

Vi ringrazio infinitamente per l'aiuto che potete darmi....

PM Quote
Avatar
creator (Normal User)
Newbie


Messaggi: 15
Iscritto: 25/08/2006

Segnala al moderatore
Postato alle 19:37
Mercoledì, 20/09/2006
Codice sorgente - presumibilmente C++

  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. typedef struct servizio{
  6. int numero;
  7. int stato; //0 libero, 1 occupato
  8. union{
  9. int richiesta;
  10. int posizione;
  11. int tempo;
  12. servizio *succ;
  13. } coda;
  14. servizio *next;
  15. } posta;
  16.  
  17.  
  18.  
  19. void inizializza(posta *sportello);
  20.  
  21.  
  22. int main(){
  23. posta *sportello;
  24. sportello=(posta*)malloc(sizeof(posta));
  25.  
  26. inizializza(sportello);
  27.  
  28. while(sportello->next!=NULL){
  29. printf("%i\n",sportello->numero);
  30. sportello=sportello->next;
  31. }
  32. getchar();
  33. }
  34.  
  35.  
  36.  
  37.  
  38. void inizializza(posta *temp){
  39. posta *sportello=temp;
  40. int i;
  41.  
  42. for(i=0;i<5;i++){
  43.  
  44. sportello->numero = i+1;
  45. sportello->stato = 0;
  46.  
  47. sportello->next=(posta*)malloc(sizeof(posta));
  48. sportello =sportello->next;
  49.  
  50. }
  51. sportello->next=NULL;
  52.  
  53. }



non è il massimo ma per ora ti dovrai accontentare :D

sono abbastanza stressato per il fatto che è iniziata la scuola e adesso non ho voglia di scrivere papiri sulle liste... :grr:
domani risponderò alle altre tue domande se non lo avrà già fatto qualcun altro...
adesso vado a fare mate... 8-|

PM Quote
Avatar
creator (Normal User)
Newbie


Messaggi: 15
Iscritto: 25/08/2006

Segnala al moderatore
Postato alle 16:00
Giovedì, 21/09/2006
Testo quotato


Ecco quello che non riesco a fare è spostarmi da una locazione di memoria all'altra..
non ho la più pallida idea di come salvare la prima locazione di memoria della lista..
e infine non so come accedere alla "sottolista" non so come chiamarla...



per spostarti nella lista la devi scorrere nel modo mostrato sopra

per salvare l'indirizzo del primo elemento, semplicemente memorizzi in una variabile l'indirizzo dell'elemento stesso...
esempio:
posta *primo_elemento=lista;
dopodiché puoi usare *primo_elemento come puntatore al primo elemento appunto...

per accedere alla "sottolista" si fa così:
sportello->coda.tempo


credo di aver risolto tutti i tuoi dubbi

PM Quote