programmerere bruke køer for å representere datastrukturer som arbeider ved den først inn, først ut ( FIFO ) retningslinje. Dette betyr alle data som skrives inn i strukturen vil føye til en liste over data , og data som har vært på listen lengst vil være den første til å bli fjernet . I programmeringsspråket C , implementerer en programmerer beste en grunnleggende form av denne strukturen ved hjelp av en lenket liste og diverse pekere for å opprettholde orden på dataene . Instruksjoner
en
Opprett data nodestrukturen og listen struktur . For at lenket liste å fungere som en kø , må listen inneholde noder i stand til å referere til neste node i listen og to tips som referanse i begynnelsen og slutten av listen . Disse eksempel strukturer viser en grunnleggende mal for listen noder og køen struktur : en
struct node {
int data ;
struct * Node neste ;
< p > };
struct queue_list {
struct * node først ; //peker til det første elementet
struct * node siste ; //peker til det siste elementet
}
2
Gjennomføre en data innsetting algoritme . I en kø bør programmet alltid tilføye data til enden av listen. Videre må listen referere det siste elementet , så fremtidige innsettinger vet på hvilken ende som skal føye . Følgende eksempel viser en enkel algoritme for å føye en node med data på en kø : en
void insert ( struct * kø q , int verdi) {
struct * node newnode = malloc ( sizeof ( struct node ));
newnode - > data = verdi ;
newnode - > neste = NULL ;
if ( q - > første == NULL) {
q - > første = q - > siste = newnode , //hvis listen er tom, første og siste = newnode
}
else {
q - > siste > neste = newnode ; //append newnode etter siste element
q - > siste = siste > neste ; //point " siste " pekeren til ny node
}
}
3
Gjennomføre en fjerning algoritme . Denne algoritmen vil ta verdien fra den første node i listen . Deretter vil det peke den "første "-pekeren til den neste node , og slette den første noden. Dette vil gjøre den neste noden den nye første posisjon på listen , klar for fjerning. Følgende eksempel viser en algoritme for å oppnå dette : en
int remove ( struct * kø q ) {
int verdi = q- > første - > data ;
struct * node temp = q - > første ;
q - > første = q - > første - > next ; //flytter først pekeren til neste element
gratis ( temp) ; //sletter den gamle første noden
retur verdi ; //returnerer den første verdien ,
}
4
Erklærer og bruke en kø . Programmereren kan erklære en kø som variabel av type " struct køen " og bruke de definerte funksjoner for å legge til og fjerne elementer . Følgende eksempel viser hvordan å erklære og bruke en kø struktur : en
int main ( ) {
struct kø q;
innsats ( og q , 5 ) ; //bruksområder en referanse til "q " for å unngå grunne kopier
innsats ( og q , 6 ) ;
int x = fjern (& q ), //x = 5