Wie Priority Queue Klasse mit Array implementieren. Drücken Orte ein Element am Ende der Warteschlange ; pop entfernt das Element an der Front und gibt es zurück. Eine Priorität Warteschlange verhält sich ähnlich , mit einem Unterschied : push fügt Elemente in die Warteschlange in einer bestimmten Reihenfolge . Arrays sind nicht ideal für eine Prioritäts-Warteschlange ; sie wenig flexibel , so dass es schwierig ist, die Warteschlange zu sortieren. Allerdings sind sie nützlich für das Lernen , das Konzept . Anleitung
1
Wählen Sie den Datentyp Ihre Priorität Warteschlange enthält . Wenn dies Ihr erster Zeit mit dem Schreiben eine Prioritäts-Warteschlange , wählen Sie etwas einfach, wie eine ganze Zahl ist.
2
Erstellen Sie ein Array als Ihre Warteschlange dienen . Wenn Ihr Datentyp integer, und Sie möchten 10 Titel halten, wird das Array erstellt mithilfe von Code wie folgt aussehen:
int [ ] arr = new int [ 10];
Denken daran, dass der erste Index 0 jeglicher Array ist . Um den ersten Index arr zugreifen zu können, würde arr siehe [0] und arr [ 9] würde die letzte Index arr zugreifen . In diesem Fall , arr [ 10] einen Fehler verursacht.
3
Bestimmen Sie die Sortierfunktion . Es wird später verwendet werden , um Elemente in der richtigen Reihenfolge zu drücken. Diese Funktion nimmt zwei Eingänge , vergleicht diese dann . Wenn der erste Eingang einen höheren Wert hat , kehrt die Funktion 1 , wenn beide Eingänge den gleichen Wert haben , wird 0 , und wenn der erste Eingang einen geringeren Wert hat , wird -1 . Wenn dies Ihr erster Zeit mit dem Schreiben eine Sortierfunktion , und Ihre Daten Art der Wahl ist integer , sollten Sie mit numerischer Reihenfolge starten, in denen niedrigere Zahlen einen niedrigeren Wert haben . Sortierung nach numerischen Wert , wird der Code wie folgt aussehen:
if ( first> Sekunde) return 1;
if ( erster == Sekunde) return 0;
if ( erste < Sekunde) -1 zurück ;
Dies funktioniert auch für andere Datentypen Zahl , wie Doppel-und Schwimmern . Wenn Sie Zeichenfolgen , könnten Sie in alphabetischer Reihenfolge zu sortieren.
4
Starten Sie die Push-Funktion . Dieser hat einen Eingang , den Artikel in der Warteschlange zu schieben, und gibt nichts aus . In Java, wenn Ihr Datentyp integer, wird Ihr Code wie folgt aussehen:
public void push ( int in )
Ihr Code aussehen wird in den meisten anderen Programmiersprachen ähnlich , einschließlich C und C + + . " Void" bedeutet , dass diese Funktion nichts auszugeben.
5
Erstellen Sie ein Array der gleichen Größe wie das Array, das Sie für Ihre Warteschlange . Wenn Ihre aktuellen Array 10 Zahlen halten kann , erstellen Sie ein Array wie folgt aus:
int [ ] = new int secondArray [10];
Diese zweite Array wird später die Warteschlange zu werden. Wenn der letzte Eintrag im Array voll ist, bedeutet dies , dass Sie jeden Eintrag in dem Array verwendet , sollten Sie stattdessen ein Array erstellen , die einen Eintrag größer ist
6
Vergleichen Sie den Eingang zu jedem Artikel . im Array , beginnend mit dem ersten , mit der Sortierfunktion . Achten Sie immer Push den Eingang der erste Artikel, den Sie in der Sortierfunktion . Um Push- Eingangs-und das erste Element aus arr vergleichen , Ihr Code wird wie folgt aussehen:
sort ( in , arr [ 0]);
Hier "in" ist die Bezeichnung für die Eingangsgröße aus Schritt 4
Wenn dies -1 zurück , legte die Push- Eingang in der zweiten Reihe : .
secondArray [0] = in ;
Ansonsten , kopieren Sie die Element aus der ersten Reihe in die zweite Reihe :
secondArray [0] = arr [ 0];
Dann vergleichen Sie die Push- Eingang zum nächsten Element in der ersten Reihe :
< p > sort ( in , arr [ 1] );
Setzen Sie dies, bis die Push -Eingang in der zweiten Reihe eingesetzt wird oder bis es keine mehr Einzelteile in der ersten Reihe sind . Im letzteren Fall erfolgt die Push- Eingang als nächsten Punkt in der zweiten Reihe .
7
Kopieren Sie den Rest der Elemente aus der ersten Reihe in die zweite Reihe . Nun, da die Push- Eingang in der zweiten Reihe platziert wurde , haben Sie keine Notwendigkeit für die Sortierfunktion . Von nun an , verwenden Sie das zweite Array statt der ersten , die erste Reihe ist jetzt veraltet. Damit ist die Push-Funktion abgeschlossen.
8
Schreiben Sie den Popup -Funktion. Das dauert keine Eingänge , aber es gibt ein Element aus Ihrer Warteschlange . Wenn Ihr Datentyp integer, Ihr Code wird wie folgt aussehen:
public int pop ()
Das zweite Wort , " int ", bedeutet , dass diese Funktion eine ganze Zahl ausgeben
9
erstellen Sie eine zweite Reihe von der gleichen Größe wie Ihre aktuelle Array. Dann kopieren Sie das zweite Element aus der ersten Reihe in den ersten Eintrag in der zweiten Reihe , das dritte Element in der zweiten Reihe der zweite Eintrag , und so weiter und so fort , bis es keine weiteren Einträge sind . Kopieren Sie nicht die erste Position in der ersten Reihe . Wenn Ihr Array enthält 4 Elemente , wird Ihr Code wie folgt aussehen:
secondArray [0] = arr [ 1];
secondArray [1] = arr [ 2];
< p> secondArray [2] = arr [ 3] ;
Recall , dass der erste Index eines Arrays 0 ist . Dies bedeutet, dass secondArray [0] ist das erste Element der secondArray und arr [ 1] ist der zweite Artikel von arr .
10
Bringen Sie das erste Element aus der ersten Reihe . Ihr Code wird wie folgt aussehen:
Rückkehr arr [ 0];
mit der Push-Funktion , ist die zweite Matrix jetzt Ihre Warteschlange . Das Popup -Funktion ist nun abgeschlossen.