A kø gemmer data i rækkefølge og indeholder to funktioner: skubbe og pop. Push steder et element i slutningen af køen , pop fjerner elementet på forsiden og returnerer det. En prioritetskø opfører sig på samme , med en forskel: tryk tilføjer elementer til køen i en bestemt rækkefølge . Arrays er ikke ideelle til en prioriteret kø , de mangler fleksibilitet , hvilket gør det vanskeligt at sortere køen . Men de er nyttige til at lære konceptet . Instruktioner
1
Vælg den datatype, din prioritet kø besidder. Hvis dette er din første gang at skrive en prioriteret kø, vælge noget simpelt, såsom et heltal.
2
Opret et array til at fungere som din kø. Hvis din datatype er heltal, og du ønsker at holde 10 varer, vil dit array være skabt ved hjælp kode som dette : Hej
int [ ] arr = new int [10]
Hold imod at 0 er den første indeks for enhver matrix . For at få adgang den første indeks for arr. , ville du henvise til arr. [0] , og arr [9] ville få adgang til den sidste indeks arr. . I dette tilfælde [10] arr medfører en fejl .
3
Bestem sortering funktion. Det vil blive brugt senere til at skubbe genstande i den rigtige rækkefølge . Denne funktion tager to indgange , så sammenligner dem . Hvis den første indgang har en højere værdi , returnerer funktionen 1 , hvis begge indgange har samme værdi , returneres 0 , og hvis den første indgang har en lavere værdi , returnerer -1. Hvis dette er din første gang at skrive en sortering funktion og dine data type valg er heltal, bør du starte med nummerorden , hvor lavere tal har en lavere værdi. Sortering af numerisk værdi , vil koden se sådan ud : Hej
hvis (første > sekund) tilbagevenden 1;
hvis (første == sekund) return 0 ;
if ( første < sekund) returnerer -1 ,
Dette virker også for andre antal datatyper , såsom doubler og flåd . Hvis du bruger strenge, kan du sortere efter alfabetisk orden.
4
Start push -funktionen. Dette tager én indgang, det element til at skubbe på kø, og udgange ingenting. I Java , hvis din datatype er heltal , vil din kode se sådan ud : Hej
public void skub ( int i )
Din kode vil ligne de fleste andre programmeringssprog , herunder C og C + + . " Void " betyder, at denne funktion vil output ingenting .
5.
Opret et array af samme størrelse som array du bruger til din kø. Hvis din nuværende array kan holde 10 heltal, skal du oprette et array som dette : Hej
int [ ] secondArray = new int [10]
Denne anden array vil senere blive din kø. Hvis den sidste post i dit array er fuld, betyder det, at du har brugt hver post i array , du skal i stedet oprette et array, der er én indgang større
6
Sammenlign input til hvert punkt. i dit array , startende med den første , ved hjælp af sorteringsfunktionen . Altid lave skubbe input det første element , du placere i den slags funktion. At sammenligne skubbe input og det første emne fra arr. , vil din kode se sådan ud : Hej
slags ( i , arr [0 ])
Her "i" er navnet givet til input variabel fra trin 4 fotos p Hvis dette returnerer -1, sætte skub input i den anden matrix: .
secondArray [0 ] = i ,
Ellers kopiere element fra den første array i den anden matrix : Hej
secondArray [0 ] = arr [0 ]
Derefter sammenligne skub input til det næste punkt i første række : Hej
slags ( i , arr [1 ])
Fortsæt dette indtil skub input er indsat i den anden matrix eller indtil der ikke er flere elementer i det første array. I sidstnævnte tilfælde . Sted skubbe input som det næste element i den anden matrix
7
Kopier resten af punkterne fra den første array i den anden array. Nu , at skubbe input er blevet placeret i den anden matrix , har du ikke behov for den slags funktion. Fra nu af , skal du bruge den anden matrix snarere end den første , den første array er nu forældet. Med dette, er push -funktionen færdig.
8
Skriv pop -funktionen. Dette tager ingen input, men det output et element fra din kø . Hvis din datatype er heltal , bliver din kode se sådan ud : Hej
offentlig int pop ()
andet ord , " int ", betyder det, at denne funktion vil udsende et heltal < br . >
9
Opret en anden gruppering af samme størrelse som din nuværende array. Kopier derefter det andet punkt fra den første array i den første post i den anden array, det tredje punkt i den anden matrix anden indgang , og så videre og så videre, indtil der ikke er flere poster . Du må ikke kopiere det første element i det første array. Hvis dit array indeholder 4 varer, vil din kode se sådan ud : Hej
secondArray [0 ] = arr [1],
secondArray [1 ] = arr [2] ;
< p> secondArray [2 ] = arr [3]
Recall , at den første indeks i et array er 0 . Det betyder, at secondArray [0] er det første punkt i secondArray og arr [1] er det andet element i arr. .
10
Returner det første element fra den første array. Din kode vil se sådan ud : Hej
retur arr. [0 ]
Som med push -funktion , den anden array er nu din kø . Pop -funktionen er nu færdig.