En kö lagrar data i sekvens och innehåller två funktioner : push- och pop . Push ställen en post i slutet av kön , pop tar bort posten på framsidan och returnerar det . En prioriterad kö beter sig likt , med en skillnad : tryck lägger till objekt i kö i en viss ordning . Arrayer är inte idealiskt för en prioriterad kö , de saknar flexibilitet , vilket gör det svårt att sortera i kön . De är dock användbart för att lära konceptet. Instruktioner
1
Välj datatyp din prioritetskön innehar . Om detta är första gången du skriver en prioriterad kö , välja något enkelt, som ett heltal .
2
Skapa en array för att fungera som din kö . Om din datatyp är heltal , och du vill hålla 10 poster, kommer din array skapas med hjälp av koden så här :
int [ ] arr = new int [ 10 ] ;
Håll ihåg att 0 är det första indexet i någon grupp . För att komma åt det första indexet för arr , skulle du hänvisa till arr [ 0 ] och arr [ 9 ] skulle komma åt den sista index arr . I detta fall , arr [ 10 ] orsakar ett fel .
3
Bestäm sorteringsfunktion . Det kommer att användas senare för att driva objekt i rätt ordning. Den här funktionen tar två ingångar , sedan jämför dem . Om den första ingången har ett högre värde , returnerar funktionen 1 , om båda ingångarna har samma värde , returneras 0 , och om den första ingången har ett lägre värde , returneras -1 . Om detta är första gången du skriver en sorteringsfunktion , och dina uppgifter typ av val är heltal , bör du börja med numerisk ordning , i vilken lägre siffror har ett lägre värde . Sortering av numeriskt värde , kommer koden se ut så här :
p Om ( första > sekund ) avkastning 1;
p Om ( första == sekund ) avkastning 0 ;
if ( första < sekund ) returnera -1 ,
Detta fungerar även för andra antal datatyper , till exempel dubbel och flottar . Om du använder strängar , kan du sortera i alfabetisk ordning .
4
Starta push-funktion . Detta tar en ingång , posten att trycka på kö , och utgångar ingenting . I Java , om din datatypen är heltal , kommer din kod ser ut så här :
public void push ( int i ) katalog
Din kod kommer att se ut ungefär i de flesta andra programmeringsspråk , inklusive C och C + +. " Void " innebär att denna funktion kommer att mata ingenting .
5
Skapa en matris av samma storlek som den array som du använder för ditt kön . Om din nuvarande samling rymmer 10 heltal , kommer du att skapa en array så här :
int [ ] secondArray = new int [ 10 ] ;
Denna andra grupp kommer senare bli din kö . Om den sista posten i arrayen är full , innebär det att du har använt varje post i arrayen , du bör i stället skapa en array som är en post större
6
Jämför ingången till varje objekt . i din arrayen, från den första , med hjälp av sorteringsfunktionen . Gör alltid tryck input det första objektet som du placerar i sorteringen fungerar . Att jämföra tryck input och den första posten från arr , kommer din kod ser ut så här :
sort ( i , arr [ 0 ] ) ;
Här , " i " är namnet på invariabeln från steg 4
p Om denna avkastning -1 , sätta tryck input i den andra arrayen : .
secondArray [ 0 ] = i ;
Annars kopierar objekt från den första uppsättningen i den andra arrayen :
secondArray [ 0 ] = arr [ 0 ] ;
jämför sedan trycka input till nästa objekt i den första arrayen :
sort ( i , arr [ 1 ] ) ;
Fortsätt med detta till Push -funktionen ställs in i den andra matrisen eller tills det inte finns fler objekt i den första gruppen . I det senare fallet platsen tryck input som nästa objekt i den andra gruppen .
7
Kopiera resten av objekten från den första uppsättningen i den andra gruppen . Nu som trycker input har placerats i den andra gruppen , har du inget behov av den sortens funktion . Från och med nu kan du använda den andra arrayen snarare än den första , den första uppsättningen är överspelad . Med detta är push -funktionen komplett .
8
Skriv pop -funktionen . Detta tar några ingångar , men det skriver ut ett objekt från din kö . Om din datatyp är heltal , kommer din kod ser ut så här :
public int pop ( ) katalog
andra ord , " int ", innebär att denna funktion kommer att mata ett heltal
9
Skapa en andra uppsättning av samma storlek som din nuvarande samling . Kopiera sedan den andra posten från den första uppsättningen till den första posten i den andra gruppen , den tredje posten i den andra arrayen s andra posten , och så vidare och så vidare , tills det inte finns fler poster . Kopiera inte den första posten i den första uppsättningen . Om din array innehåller 4 objekt , kommer din kod ser ut så här :
secondArray [ 0 ] = arr [ 1 ] ,
secondArray [ 1 ] = arr [ 2 ] ;
secondArray [ 2 ] = arr [ 3 ] ,
Minns att det första indexet i en array är 0 . Detta innebär att secondArray [ 0 ] är den första posten i secondArray och arr [ 1 ] är den andra artikeln i arr .
10
tillbaka den första posten från den första uppsättningen . Din kod kommer att se ut så här :
retur arr [ 0 ] ;
med push-funktion , är den andra arrayen nu din kö . Popup -funktionen är nu klar .