Programmeurs gebruiken wachtrijen om data structuren vertegenwoordigen die werken door het First In , First Out ( FIFO ) richtlijn . Dit betekent dat alle gegevens die zijn ingevoerd in de structuur zal toevoegen aan een lijst met gegevens , en de gegevens die al in de lijst het langst zal de eerste zijn om te worden verwijderd . In de C -programmeertaal , een programmeur best implementeert een elementaire vorm van deze structuur met behulp van een gekoppelde lijst en diverse verwijzingen naar de volgorde van de gegevens te handhaven . Instructies 1 Maak de knoop structuur gegevens en de lijst structuur . Om de gekoppelde lijst te functioneren als een wachtrij dient de lijst knooppunten kan verwijzen naar de volgende knoop in de lijst met twee pointers die verwijzen naar het begin en het einde van de lijst bevat . Deze voorbeeld structuren tonen een basis sjabloon voor de lijst Nodes en de Queue structuur : struct knoop { int databank ; struct * Node volgende ; struct queue_list { struct * knoop eerste ; ; //pointer naar het eerste item struct * knooppunt laatste ; //pointer naar het laatste item < br > } > } kopen van 2 Implementeer een data inbrengen algoritme . In een wachtrij moet het programma altijd de gegevens aan het einde van de lijst . Bovendien moet de lijst van de laatste element verwijzen , zodat toekomstige inserties weet waarover eind te voegen . Het volgende voorbeeld laat een eenvoudig algoritme om een knooppunt met de gegevens toe te voegen op een rij : leegte insert ( struct * wachtrij q , int value ) { struct * knooppunt newnode = malloc ( sizeof ( struct knoop ) ) ; newnode - > data = waarde ; newnode - > volgende = NULL ; if ( q - > eerste == NULL ) { q - > eerste = q - > laatste = newnode ; //als lijst leeg is , de eerste en laatste = newnode } else { < br q - > last - > volgende = newnode > ; //append newnode na laatste element q - > last = laatste - > volgende ; //point "laatste" pointer naar de nieuwe knooppunt } } 3 Implementeer een verwijdering algoritme . Dit algoritme zal de waarde te nemen van het eerste knooppunt in de lijst . Dan zal het de " eerste " pointer wijst naar het volgende knooppunt en het eerste knooppunt te verwijderen . Dit zal het volgende knooppunt de nieuwe eerste positie in de lijst , kunt verwijderen maken . Het volgende voorbeeld toont een algoritme om dit te bereiken : int remove ( struct * wachtrij q ) { int waarde = q - > eerste - > data ; struct * knooppunt temp = q - > eerste ; q - > eerste = q - > eerste - > volgende ; //verplaatst de eerste pointer naar het volgende item gratis ( temp ) ; //verwijdert de oude eerste knooppunt return waarde ; //geeft de eerste waarde ; } 4 Verklaar en gebruik een wachtrij . De programmeur kan verklaren een wachtrij als variabele van het type " struct wachtrij " en gebruik de gedefinieerde functies om items toe te voegen en te verwijderen . Het volgende voorbeeld toont hoe te verklaren en het gebruik van een wachtrij structuur : int main ( ) { struct wachtrij q ; insert ( & q , 5 ) ; //toepassingen een verwijzing naar " q " om ondiepe kopieën voorkomen insert ( & q , 6 ) ; int x = verwijderen ( & q ) ; //x = 5 < br >
|