Een wachtrij slaat gegevens op in volgorde en bevat twee functies : push en pop . Duw plaatsen van een item aan het einde van de wachtrij ; pop verwijdert het item op de voorzijde en laat het zien. Een prioritaire rij gedraagt zich hetzelfde , met een verschil: push voegt items om de wachtrij in een bepaalde volgorde . Arrays zijn niet ideaal voor een prioritaire rij , en onvoldoende flexibel , waardoor het moeilijk de wachtrij sorteren . Echter zijn zij bruikbaar voor het leren van het concept. Instructies 1 Kies het datatype dat uw prioriteit wachtrij houdt . Als dit de eerste keer is het schrijven van een prioriteit wachtrij , kiest iets simpels , zoals een integer . Kopen van 2 Maak een array om te dienen als uw wachtrij . Als uw data type is integer , en je wilt 10 punten te houden , wordt uw array worden gemaakt met behulp van code als volgt : int [ ] arr = new int [ 10 ] ; Houd in erg dat 0 is de eerste index van een array. Om toegang te krijgen tot de eerste index van arr , zou u verwijzen naar arr [ 0 ] , en arr [ 9 ] zouden toegang krijgen tot de laatste index van arr . In dit geval , arr [ 10 ] veroorzaakt een fout . 3 Bepaal de sorteerfunctie . Het zal later worden gebruikt om items in de juiste volgorde te duwen . Deze functie heeft twee ingangen , dan vergelijkt ze . Wanneer de eerste ingang een hogere waarde , geeft de functie 1 , als beide ingangen hebben dezelfde waarde , retourneert 0 , en als de eerste ingang een lagere waarde , retourneert -1 . Als dit de eerste keer is het schrijven van een sorteer functie , en uw data type keuze is integer , moet je beginnen met de numerieke volgorde , waarin de lagere nummers hebben een lagere waarde . Sorteren op numerieke waarde , zal de code er als volgt uit : als ( eerste > seconde ) return 1 ; if ( eerste == tweede ) return 0 ; if ( eerste < tweede ) terug -1 ; Dit werkt ook voor andere aantal data types , zoals tweepersoonskamers en praalwagens . Als u gebruik maakt van strings , kan u sorteren op alfabetische volgorde . 4 Start de push -functie . Dit duurt een ingang , het item te duwen op de wachtrij , en uitgangen niets . Op Java , als uw gegevens type is integer , zal je code er als volgt uit : public void push ( int in ) op Je code ziet er ongeveer in de meeste andere programmeertalen , waaronder C en C + + . ' Void ' betekent dat deze functie niets zal uitvoeren . 5 Maak een matrix van dezelfde grootte als de array die u gebruikt voor uw wachtrij . Als uw huidige array kan houden 10 getallen , zul je een array te maken zoals : int [ ] secondArray = new int [ 10 ] ; Deze tweede reeks zal later je wachtrij geworden . Als de laatste vermelding in uw array vol is , betekent dit dat u elk item in de array hebben gebruikt , je moet in plaats daarvan een array dat is een vermelding groter 6 Vergelijk de input voor elk item . in de array , beginnend met de eerste , met behulp van de sorteerfunctie . Zorg er altijd voor push -ingang het eerste item dat u in de sorteerfunctie . Om input te duwen en het eerste item van arr vergelijken , zal je code er als volgt uit : soort ( in , arr [ 0 ] ) ; Hier , " in " is de naam gegeven aan de inbreng variabele uit stap 4 Als dit rendement -1 , zet inbreng duw in de tweede matrix : . secondArray [ 0 ] = in ; Anders kopieert het item uit de eerste reeks in de tweede matrix : secondArray [ 0 ] = arr [ 0 ] ; dan vergelijk ingang duwen om het volgende item in de eerste reeks : sort ( in , arr [ 1 ] ) ; Herhaal dit totdat push -ingang wordt ingebracht in de tweede matrix of totdat er geen items meer in de eerste reeks . In het laatste geval , inbreng plaats duwen als het volgende item in de tweede reeks . Copy 7 de rest van de items uit de eerste reeks in de tweede reeks . Nu ingang van die push is geplaatst in de tweede reeks , heb je geen behoefte aan het soort functie . Van nu af aan , gebruik maken van de tweede matrix in plaats van de eerste , de eerste matrix is nu achterhaald . Met deze , de push -functie is voltooid . 8 Schrijf de pop -functie . Dit neemt geen ingangen , maar stuurt een item uit de wachtrij . Als uw data type is integer , zal je code er als volgt uit : public int pop ( ) op Het tweede woord , " int ", betekent dat deze functie een integer zal uitvoeren < br . > 9 Maak een tweede serie van hetzelfde formaat als uw huidige array. Kopieer vervolgens het tweede item van de eerste serie in de eerste vermelding in de tweede reeks , de derde post in tweede ingang van de tweede array , en zo verder en zo voort , totdat er geen meer inzendingen . Weet het eerste item in de eerste matrix niet kopiëren . Als uw array bevat 4 items , zal de code er als volgt uit : secondArray [ 0 ] = arr [ 1 ] ; secondArray [ 1 ] = arr [ 2 ] ; secondArray [ 2 ] = arr [ 3 ] ; Recall dat de eerste index van een array is 0 . Dit betekent dat secondArray [ 0 ] is het eerste item van secondArray en arr [ 1 ] is het tweede item van arr . 10 terug het eerste item van de eerste serie . Je code ziet er als volgt uit: terugkeer arr [ 0 ] ; Zoals met de push -functie , de tweede reeks is nu uw wachtrij . De pop -functie is nu voltooid .
|