|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2007
Messaggi: 39
|
[c] non riesco a capire come sistemare il mio programma..
ciao a tutti. praticamente sono nuovo nuovo di questo linguaggio.
il mio problema consiste data una lista di interi che mi definisco io e dato un intero in ingresso la mia struttura deve diventare grossa n e ricopiare all interno della struttura nuova i miei numeri. ad esempio se la mia struttura contiene 1,2,3,4 e in ingresso n = 2 deve restituirmi un altra struttura contenente 1,2,3,4,1,2,3,4 il codice da me fatto è questo ma sto trovando dei problemi perchè non mi funziona. qualcuno gentilmente mi potrebbe dare una mano ?? grazie mille Codice:
struct StructLista { TipoElemLista info; struct StructLista *next; }; typedef struct StructLista TipoNodoLista; typedef TipoNodoLista *TipoLista; //definizione della mia lista void InitLista(TipoLista *lis) // lista inizialmente vuota { *lis = NULL; } boolean vuota(TipoLista lis) //mi dice se la lista è vuota o no { return (lis == NULL); } void Inserisci(TipoLista *lis, TipoElemLista elem) // inserimento degli elementi { TipoLista lista; lista = malloc(sizeof(TipoNodoLista)); lista->info = elem; lista->next = *lis; *lis = lista; } void Ultimo(TipoLista lis, TipoElemLista *elem) // mi da l ultimo elemento della lista { if (lis != NULL) *elem = lis->info; } voiid Clear(TipoLista *lis) //mi cancella la lista { TipoLista lista; while (*lis != NULL) { lista = *lis; *lis = (*lis)->next; free(lista); } } void CopiaLista(TipoLista lis, TipoLista *copia) // Restituisce una copia della lista lista. { TipoLista prec; // puntatore all'elemento precedente prec = malloc(sizeof(TipoNodoLista)); *copia = prec; while (lis != NULL) { prec->next = malloc(sizeof(TipoNodoLista)); prec = prec->next; prec->info = lis->info; lis = lis->next; } prec->next = NULL; prec = *copia; *copia = (*copia)->next; free(prec); } grazie a tutti e scusate il disturbo Ultima modifica di maradona86 : 08-10-2007 alle 15:18. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7257
|
beh visto che riesci a ottenere una copia della lista potresti collegare l'ultimo elemento di una con il primo dell'altra modificando opportunamente un paio di puntatori
![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jan 2007
Messaggi: 39
|
gia ma non so come farlo e non so se il programma è giusto! alla fine a logica sembra di si
![]() |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jan 2007
Messaggi: 39
|
ragazzi qualcuno mi può dire come attaccare la nuova lista copiata alla lista esistente please???
ci sto sclerando |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:13.