Programmører bruger køer til at repræsentere datastrukturer , der virker ved første ind, først ud (FIFO ) retningslinje . Det betyder alle data, der indtastes i strukturen vil tilføje til en liste af data , og de data, der har været i listen længst vil være den første til at blive fjernet . I programmeringssproget C , bedst en programmør gennemfører en grundlæggende form for denne struktur ved hjælp af en tilknyttet liste og forskellige pointere at beholde rækkefølgen af data . Instruktioner
1
Opret data node struktur og listen struktur. For at den linkede liste til at fungere som en kø , skal listen indeholde knuder kan referere den næste node i listen, og to pointere der refererer begyndelsen og slutningen af listen . Disse eksempler strukturer viser en grundlæggende skabelon for listen Nodes og køen struktur : Hej
struct node {
int data
struct * Node næste ,
< p > };
struct queue_list {
struct * node først //pointer til det første element
struct * node sidst //pointer til det sidste punkt < br >
}
2
Implementer en data indsættelse algoritme. I en kø , bør programmet altid føje data til slutningen af listen . Desuden skal listen referere det sidste element , så fremtidige indsættelser vide om, hvilken ende tilføje. Følgende eksempel viser en simpel algoritme til at tilføje en node med data på en kø : Hej
void insert ( struct * køen q, int værdi) {
struct * node newnode = malloc ( sizeof ( struct node )),
newnode -> data = værdi
newnode -> next = NULL ;
if ( q -> første == NULL) {
q -> første = q - > sidste = newnode //hvis listen er tom , første og sidste = newnode
}
else { < br >
q -> sidste > next = newnode //append newnode efter sidste element
q - > sidste = sidste -> næste //punktet " sidste" pointer til ny node
}
}
3
Implementer en fjernelse algoritme. Denne algoritme vil tage værdien fra det første knudepunkt på listen . Derefter vil det pege den "første" pointer til den næste node og slette den første knude . Dette vil gøre det næste node den nye første position på listen, er klar til afhentning. Følgende eksempel viser en algoritme til at opnå dette : Hej
int remove ( struct * kø q ) {
int value = q- > first- > data
struct * node temp = q -> først,
q -> første = q -> første -> næste //flytter den første markøren til næste punkt
fri ( temp ) //sletter den gamle første node
returværdier , //returnerer den første værdi ,
}
4
Erklær og bruge en kø. Programmøren kan erklære en køen som variabel af typen " struct kø " og bruge de definerede funktioner til at tilføje og fjerne elementer. Følgende eksempel viser, hvordan man erklærer og bruge en kø struktur : Hej
int main () {
struct kø q ;
indsatsen ( & q , 5 ) //anvendelser en henvisning til " q " for at undgå lavvandede kopier
indsatsen ( & q, 6);
int x = fjerne ( & q ) //x = 5 fotos < br >