Programmerare använder köer för att representera datastrukturer som arbetar med First In First Out ( FIFO ) riktlinje. Detta innebär alla data matats in i strukturen kommer att lägga till en lista med uppgifter , och de uppgifter som har varit i listan längst kommer att vara de första att tas bort . I C- programmeringsspråk, implementerar en programmerare bäst en grundläggande form av denna struktur med användning av en länkad lista och olika pekare för att upprätthålla ordningen på data. Instruktioner
1
Skapa datanoden struktur och listan struktur . För att den länkade listan för att fungera som en kö , måste förteckningen innehålla noder kan referera till nästa nod i listan och två pekare som refererar början och slutet av listan . Dessa exempel strukturer visar en grundläggande mall för listan Noder och Kö struktur :
struct node {
int data;
struct * Nod nästa ,
} ;
struct queue_list {
struct * nod först , //pekare till den första posten
struct * nod sist , //pekare till det sista objektet
}
2
Genomföra ett införande av data algoritm . I en kö , bör programmet bifoga alltid uppgifterna till slutet av listan . Dessutom måste listan referera det sista elementet , så framtida insättningar vet på vilken ände som ska läggas . Följande exempel visar en enkel algoritm för att lägga till en nod med data på en kö :
void insert ( struct * kö q , int value ) {
struct * nod newnode = malloc ( sizeof ( struct node ) ) ;
newnode - > uppgifter = värde ;
newnode - > next = null;
if ( q - > första == null ) {
q - > först = q - > sista = newnode , //om listan är tom , första och sista = newnode
}
else {
q - > sista - > next = newnode , //append newnode efter sista elementet
q - > sista = sista - > next ; //punkten " sista " pekare till ny nod
}
}
3
Genomföra en borttagning algoritm . Denna algoritm kommer att ta värdet från den första noden i listan. Då kommer den att peka den "första" pekare till nästa nod och radera den första noden . Detta kommer att göra det nästa nod den nya första plats på listan , redo för borttagning . Följande exempel visar en algoritm för att åstadkomma detta :
int bort ( struct * kö q ) {
int value = q - > först - > data;
struct * nod temp = q - > först ,
q - > först = q - > först - > next ; //flyttar den första pekaren till nästa objekt
gratis ( temp ) , //tar bort den gamla första noden
returvärde , //returnerar det första värdet ,
}
4
Deklarera och använda en kö . Programmeraren kan förklara en kö som variabel av typ " struct kö " och använda de definierade funktioner för att lägga till och ta bort objekt . Följande exempel visar hur du deklarerar och använda en kö struktur :
int main ( ) {
struct kö q ,
insats ( & Q , 5 ) , //användningsområden en hänvisning till " q " för att undvika ytliga kopior
insats ( & q , 6 ) ;
int x = ta bort ( & Q ) , //x = 5