Come fare una funzione di coda nella cartella C Sintassi

September 13

I programmatori usano le code per rappresentare strutture di dati che funzionano dal First In, First Out (FIFO) linea guida. Ciò significa i dati immessi nella struttura aggiungerà ad un elenco di dati, ei dati che è stato nella lista il più lungo sarà il primo ad essere rimosso. Nel linguaggio di programmazione C, un programmatore migliore implementa una forma di base di questa struttura di base ad una lista collegata e vari puntatori per mantenere l'ordine dei dati.

istruzione

1 Creare la struttura di nodo di dati e la struttura della lista. Affinché l'elenco collegato di funzionare come una coda, la lista deve contenere nodi capaci di riferimento al nodo successivo nella lista e due puntatori che fanno riferimento l'inizio e la fine della lista. Queste strutture di esempio mostrano un modello di base per i nodi della lista e la struttura della coda:

struct node {

int dati;

struct * nodo successivo;

};

struct queue_list {

struct * primo nodo; // Puntatore al primo elemento

struct * nodo scorso; // Puntatore all'ultimo elemento

}

2 Implementare un algoritmo di inserimento dei dati. In una coda, il programma dovrebbe sempre aggiungere i dati alla fine dell'elenco. Inoltre, la lista deve fare riferimento l'ultimo elemento, in modo da inserimenti futuri sapere su quale fine da aggiungere. L'esempio seguente mostra un semplice algoritmo per aggiungere un nodo con i dati su una coda:

void insert (struct * coda q, valore int) {

struct * nodo newnode = malloc (sizeof (struct node));

newnode-> Dati = valore;

newnode-> next = NULL;

if (q-> prima == null) {

q-> prima = q-> ultimo = newnode; // Se elenco è vuoto, prima e ultima = newnode

}

altro{

q-> ultimo-> next = newnode; // Aggiungere nuovo_nodo dopo l'ultimo elemento

q-> ultima = ultimo-> prossimo; // Punto "ultimo" puntatore al nuovo nodo

}

}

3 Implementare un algoritmo di rimozione. Questo algoritmo avrà il valore del primo nodo della lista. Poi, punterà la "prima" puntatore al nodo successivo ed eliminare il primo nodo. Questo renderà nodo successivo nuovo prima posizione nella lista, pronta per la rimozione. Il seguente esempio illustra un algoritmo per ottenere questo risultato:

int remove (struct * coda q) {

int value = q-> Nome> dati;

struct * Temp nodo = q-> prima;

q-> prima = q-> Nome> prossimo; // Sposta il primo puntatore alla voce successiva

gratuito (temp); // Cancella il vecchio primo nodo

valore di ritorno; // Restituisce il primo valore;

}

4 Dichiarare e utilizzare una coda. Il programmatore può dichiarare una coda come variabile di tipo "coda di struct" e utilizzare le funzioni definite per aggiungere e rimuovere elementi. L'esempio seguente mostra come dichiarare e utilizzare una struttura di coda:

int main () {

struct coda q;

inserire (& q, 5); // Utilizza un riferimento a "q" per evitare copie poco profonde

inserire (& q, 6);

int x = remove (& q); // X = 5