#include struct elemento { int val; int prossimo; }; void stampa(struct elemento v[], int primo) { int i; i = primo; while (i != -1) { printf("%d ", v[i].val); i = v[i].prossimo; } printf("\n"); } int main() { struct elemento numero[20]; int primo = -1; unsigned int i, n; printf("Quanti numeri vuoi inserire? "); scanf("%u", &n); i = 0; while (i < n) { int val; printf("Inserisci l'%u-o elemento: ", i); scanf("%d", &val); numero[i].val = val; if ((primo == -1) || (numero[primo].val > val)) { numero[i].prossimo = primo; primo = i; } else { int j; unsigned int prev; j = primo; while ((j != -1) && (numero[j].val <= val)) { prev = j; j = numero[j].prossimo; } numero[i].prossimo = j; numero[prev].prossimo = i; } i = i + 1; } stampa(numero, primo); return 0; }