![]()
sapete dirmi come posso creare due liste da questo codice, in modo da inserire i numeri pari in una lista e i disari nell'altra?
Grazie millee!![]()
codice:#include <stdio.h> #include <stdlib.h> //#include <malloc.h> typedef struct nodo{ int dato; struct nodo *ptr; }nodo; nodo *creazione(){ int appo; nodo *p; p = (nodo *) malloc (sizeof (nodo)); printf("\nInserire un valore intero: "); scanf("%d",&appo); fflush(stdin); p->dato = appo; p->ptr = NULL; return p; } nodo *inserimento (nodo *p){ nodo *q,*r,*s; q = creazione(); if ((p->dato % 2) == 0){ //Pari if (p->dato > q->dato){ q->ptr = p; return q; }else{ r = p; s = p; while ((p->dato < q->dato) && (p->ptr != NULL)){ s = p; p = p->ptr; } if (p->dato > q->dato){ q->ptr = p; s->ptr = q; }else{ p->ptr = q; } return r; } /*}else{ //Dispari if (p->dato > q->dato){ n->ptr = p; return n; }else{ r = p; s = p; while ((p->dato < n->dato) && (p->ptr != NULL)){ s = p; p = p->ptr; } if (p->dato > n->dato){ n->ptr = p; s->ptr = n; }else{ p->ptr = n; } return r; }*/ } } void visualizza(nodo *p){ printf("\nLista: "); while (p!=NULL){ printf("[ %d ] ",p->dato); p = p->ptr; } printf("\n"); } int main(){ nodo *Base=NULL; int scelta=1,appo; creazione(); while (scelta!=0){ printf("\n111 - Creazione della lista;"); printf("\n1 - Inserimento ordinato nella lista;"); printf("\n2 - Scansione della lista;"); printf("\n0 - Uscita dal programma;"); printf("\nScegliere un'opzione: "); scanf("%d",&scelta); fflush(stdin); switch (scelta){ /*case 1:{ Base = creazione(); break; }*/ case 1:{ Base = inserimento(Base); break; } case 2:{ visualizza(Base); break; } } } getchar(); getchar(); }


Rispondi quotando