|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
[c] funzione x linked list
ciao a tutti...
devo creare una lista linked list bidirezionale...in cui next ha l'indirizzo del "nodo" successivo e previous quello del "nodo" precedente...ed inoltre head rappresenta la "testa" della lista e rear la "coda", cioè l'ultimo elemento. l'idea è più o meno questa: http://img388.imageshack.us/my.php?i...mmagine0nu.jpg adesso nn so cm fare a passare il valore di rear, a poterlo "usare" nel main....nn so se sn stato chiaro, ma credo dall'immagine si capisca bene! ecco il codice della versione iterativa: #include <stdio.h> #include <stdlib.h> typedef char DATA; struct linked_list { DATA d; struct linked_list *next; struct linked_list *previous; }; typedef struct linked_list ELEMENT; typedef ELEMENT *LINK; LINK creazione_lista_bid(char s[]) { LINK head = NULL, rear , tail, prev; int i; if (s[0] != '\0') /*primo elemento*/ { head = malloc(sizeof(ELEMENT)); head -> d = s[0]; head -> previous = NULL; tail = head; /*aggiungi in coda*/ for (i = 1; s[i] != '\0'; ++i) { tail -> next = malloc(sizeof(ELEMENT)); prev = tail; tail = tail -> next; tail -> d = s[i]; tail -> previous = prev; } tail -> next = NULL; rear = tail; } return head; } int main(int argc, char *argv[]) { LINK a, b; int temp, temp2; a = creazione_lista_bid("casa"); /*controllo i valori*/ temp = a -> next -> d; temp2 = a -> next -> next -> next -> previous -> d; printf("%c\n", temp); printf("%c\n", temp2); system("PAUSE"); return 0; }
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Vuoi che creazione lista ti modifichi sia rear (tail) che head del main ?
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
Quote:
no..che crei una lista cm quella in figura...in cui è possibile accedere sia da head che da rear.....cmq ho risolto..grazie
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:05.



















