|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
[C] mi stò impicciando sulle liste
Ma sono veramente così incasinate o sono io ad essere stupido...
Da quello che ho capito le liste sono strutture ricorsive ovvereo una struttura che contiene uno o più elementi dato e un puntatore ad un'altra struttura dello stesso tipo e così via finchè non si raggiunge l'ultimo nodo che contiene un puntatore di tipo NULL...ho capito bene? Stò facendo un programma preso dal libro abbastanza lungo e ho dei dubbi sulla prima parte...ve la posto.... #include <stdio.h> #include <stdlib.h> struct listNode{ char data; struct listNode *nextPtr; }; // Dichiaro un tipo struct listNode di una struttura ricorsiva typedef struct listNode LISTNODE; typedef LISTNODE *LISTNODEPTR; /* Prototipi delle funzioni che saranno usate nel programma /* void insert(LISTNODEPTR *, char); char delete(LISTNODEPTR *, char); int isEmpty(LISTNODEPTR); void printList(LISTNODEPTR); void instructions(void); int main(){ blablabla ............. ............. ............. return 0; } La cosa che per il momento mi è meno chiara è perchè fà i due typedef: typedef struct listNode LISTNODE; questo vabbè dice che quando scriverò LISTNODE è come se scrivessi structi listNode e dovrebbe essere solo per comodità...giusto? typedef LISTNODE *LISTNODEPTR; ma questo che significa?perchè lo fà?!!? Per favore aiutatemi stò in crisi..... Grazie Andrea |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
I typedef sono semplicemente degli alias per tipi, cioè un modo sintetico per scrivere un tipo,
con typedef LISTNODE *LISTNODEPTR; stai semplciemente dicendo che anzicche scrivere LISTNODE * scriveverai LISTNODEPTR Quindi se ad esempio vuoi dichiarare un puntatore alla struttura puoi scrivere LISTNODE *nodo; oppure sfruttando il typedef: LISTNODEPTR nodo. Tutto qui.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#3 | |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
Quote:
typedef struct listNode LISTNODE; vuol dire che struct listNode corrisponde a LISTNODE quando poi faccio: typedef LISTNODE *LISTNODEPTR; allora vuol dire che struct listNode corrisponde a *LISTNODEPTR e non capisco perhcè lo deve fa.... |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
struct listNode * corrisponde a LISTNODEPTR semmai...
non è necessario usare i typedef, è solo per comodità nè il primo ne il secondo sono necessari.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
ah ok..ho capito..grazie
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:11.



















