Ciao a tutti ho trovato questa lista bidirezionale in rete xò ci sono diverse cose che non capisco le scrivo accanto ai vari passaggi che non ho chiari:
codice:#include <stdio.h> #include <malloc.h> struct elemento { int informazione; struct elemento *succ; struct elemento *prec; }; struct elemento *inserisci(); void visualizza(struct elemento*); main() { struct elemento *lista; lista=inserisci(); visualizza(lista); getchar(); getchar(); } struct elemento *inserisci() { struct elemento *testa,*corpo,*piede; int i,n; printf("Inserisci il numero di elementi della lista: "); scanf("%d",&n); testa=(struct elemento *)malloc(sizeof(struct elemento)); {Qui alloca lo spazio per la testa->prec=NULL; prima informazione e dice che printf("Inserisci il 1%c elemento: ",167); il valore precedente a testa è scanf("%d",&testa->informazione); null} corpo=testa; for(i=2;i<=n;i++) { corpo->succ=(struct elemento *)malloc(sizeof(struct elemento)); {Alloca lo spazio per gli (corpo->succ)->prec=corpo; elementi successivi ma printf("Inserisci il %d%c elemento: ",i,167); non capisco (corpo->succ)->prec=corpo scanf("%d",&corpo->informazione); } corpo->succ=NULL; return(testa); } void visualizza(struct elemento *puntatore) { printf("LISTA: "); while(puntatore->succ!=NULL) {non bastava solo puntatore!=NULL??} { printf("--->%d",puntatore->informazione); puntatore=puntatore->succ; } printf("--->%d",puntatore->informazione); {Da qui in poi non capisco perchè continua in printf("--->NULL\n"); questo modo} printf("LISTA: "); while(puntatore!=NULL) { printf("--->%d",puntatore->informazione); puntatore=puntatore->prec; } printf("--->NULL\n"); }

Rispondi quotando