Mi potete aiutare a capire se ho scritto bene questa lista, ho una struttura costituita da targa(256 caratteri); Tipo(256 caratteri); Anno(valore intero). Devo scrivere una lista che contiene la struttura del nodo è della testa di una lista singolarmente concatenata e poi deve contenere l’inserimento ordinato rispetto all’anno
Grazie in anticipo
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char Targa[256];
char Tipo [256];
int Anno;
}Auto;
typedef struct Auto item;
typedef struct Nodo_SL {
Auto dato;
struct Nodo_SL *next;
}Nodo_SL;
typedef struct Lista_SL {
Nodo_SL *next;
}Lista_SL;
void InserisciInOrdine_SL(Lista_SL *Testa, char targa[], char tipo[], int anno) {
Nodo_SL *tmp = NULL;
Nodo_SL *prev = NULL;
Nodo_SL *cur = NULL;
tmp = (Nodo_SL*)malloc(sizeof(Nodo_SL));
if (tmp)
strcpy(tmp->dato.Targa, targa);
strcpy(tmp->dato.Tipo, tipo);
tmp->dato.Anno = anno;
tmp->next =NULL;
if(!Testa->next)
Testa->next = cur;
else {
prev = NULL;
cur = NULL;
while (cur!= NULL && cur->dato.Anno < anno) {
prev = cur;
cur = cur->next;
}
if(!prev) {
tmp->next = cur->next;
Testa->next = tmp;
} else {
tmp->next = prev;
tmp->next = cur;
tmp->next = tmp;
}
}
}