Si consideri un record Persona contenente i campi nome e cognome di tipo stringa (lunghezza massima 50 caratteri). Una filaSCL è una struttura collegata lineare i cui campi informativi sono elementi di tipo Persona. Il primo elemento della fila è detto capofila e rappresenta la prossima persona che sarà servita. Quando il capola è servito, esso viene rimosso dalla filla e la persona successiva diventa capola.
Quando una persona si aggiunge alla fila, viene inserita in ultima posizione. Tuttavia, una persona può essere raccomandata e, in tal caso, essere inserita in un punto arbitrario della fila.
Le seguenti denizioni forniscono i tipi necessari alla manipolazione di file:
struct elemSCL {
Persona elemento;
struct elemSCL * next;
};
typedef struct elemSCL nodoFilaSCL;
typedef nodoFilaSCL* filaSCL;
Ho difficoltà nell'inserimento dei dati, perché di solito era abituato a lavorare con una sola struttura mentre ora ne ho due..
Dunque,
Il dato strutturato persona l'ho definito così:
struct P{
char nome[50];
char cognome[50];
};
typedef struct P Persona;
struct elemSCL{
Persona elemento;
struct elemSCEL *next;
};
typedef struct elemSCL nodoFilaSCL;
typedef nodoFilaSCL *filaSCL;
Ora, nel main, vorrei inserire i dati.
#include "definizioni.h"
int main()
{
filaSCL fila, punt_fila = NULL, punt_capofila;
fila = malloc(sizeof(fila));
printf("\nNome: "); scanf("%s", fila->elemento.nome);
printf("\nCognome: "); scanf("%s", fila->elemento.cognome);
//Collegamento al nodo successivo
}
Il compilatore non mi da errori però non so se ho fatto giusto..?
Il collegamento al nodo successivo come lo faccio con due strutture?