English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Beispiel erlernen wir,wie man eine Warteschlange-Datenstruktur in Java implementiert.
Um diesen Beispiel zu verstehen,stellen Sie sicher,dass Sie zunächst den folgenden Tutorium besuchen,
public class Queue { int SIZE = ; 5; int items[] = new int[SIZE]; int front, rear; Queue() { front = ; -1; rear = ; -1; } //Überprüfe,ob die Kontrollliste voll ist boolean isFull() { if (front == 0 && rear == SIZE - 1) { return true; } return false; } //Überprüfe,ob die Kontrollliste leer ist boolean isEmpty() { if (front == -1) return true; else return false; } //Element in die Warteschlange einfügen void enQueue(int element) { //Wenn die Kontrollliste voll ist if (isFull()) { System.out.println("Die Kontrollliste ist voll"); } else { if (front == -1) { //Markiere front als ersten Element der Kontrollliste front = 0; } rear++; //Füge Element hinterher ein items[rear] = element; System.out.println("Einfügen " + element); } } //Entferne Element aus der Kontrollliste int deQueue() { int element; //Wenn die Kontrollliste leer ist if (isEmpty()) { System.out.println("Die Kontrollliste ist leer"); return ;-1); } else { //Element vom Anfang der Warteschlange entfernen element = items[front]; //Wenn es nur ein Element in der Kontrollliste gibt if (front >= rear) { front = ; -1; rear = ; -1; } else { //Markiere den nächsten Element als front front++; } System.out.println( element + " Gelöscht"); return (element); } } //Zeige Elemente der Kontrollliste void display() { int i; if (isEmpty()) { System.out.println("Leere Kontrollliste"); } else { //Zeige den vorderen Index System.out.println("\nVorderindex-> " + front); //Zeige die Elemente der Warteschlange System.out.println("Elemente -> "); for(i = front; i <= rear; i++) System.out.print(items[i] + ""); // Zeige den hinteren Index der Warteschlange System.out.println("\nRückindex-> " + rear); } } public static void main(String[] args) { //Ein Objekt der Klasse Queue erstellen Queue q = new Queue(); //Versuch, ein Element aus der Warteschlange zu löschen // Die aktuelle Warteschlange ist leer // Daher kann nicht gelöscht werden q.deQueue(); // Element in die Warteschlange einfügen for(int i = 1; i < 6; i ++) { q.enQueue(i); } // Kann den6Elemente können nicht hinzugefügt werden, da die Warteschlange voll ist q.enQueue(6); q.display(); // deQueue löscht das zuerst eingefügte Element, z.B.:1 q.deQueue(); //Jetzt haben wir nur4Elemente q.display(); } }
Ausgabergebnis
Warteschlange ist leer Einfügen 1 Einfügen 2 Einfügen 3 Einfügen 4 Einfügen 5 Warteschlange ist voll Vorderindex-> 0 Elemente -> 1 2 3 4 5 Rückindex-> 4 1 Gelöscht Vorderindex-> 1 Elemente -> 2 3 4 5 Rückindex-> 4
Im obigen Beispiel haben wir die Datenstruktur Warteschlange mit Java implementiert.
Java bietet eine eingebaute Schnittstelle Queue an, die zur Implementierung von Warteschlangen verwendet werden kann.
import java.util.Queue; import java.util.LinkedList; class Main { public static void main(String[] args) { //Eine Warteschlange mit der Klasse LinkedList erstellen Queue<Integer> numbers = new LinkedList<>(); // enqueue //Element am Ende der Warteschlange einfügen numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Warteschlange: ", + numbers); // dequeue //Element vom Anfang der Warteschlange entfernen int removedNumber = numbers.poll(); System.out.println("Gelöschtes Element: ", + removedNumber); System.out.println("Nach dem Löschen in die Warteschlange einreihen: )} + numbers); } }
Ausgabergebnis
Queue: [1, 2, 3] Gelöschtes Element: 1 Nach dem Löschen in die Warteschlange einreihen: [2, 3]
In diesem Beispiel haben wir die Java Queue Schnittstelle verwendet, um eine Queue zu implementieren. Hier verwenden wir die LinkedList-Klasse, um die Queue Schnittstelle zu implementieren.
Numbers.offer() - Ein Element am Ende der Queue einfügen
Numbers.poll() - Ein Element vom Anfang der Queue entfernen
Beachten Sie, dass wir bei der Erstellung der Queue eckige Klammern <Integer> verwendet haben. Dies bedeutet, dass die Queue ein generischer Typ ist. Weitere Informationen zu Generics finden Sie unterJava Generics.
Wir können auch andere Schnittstellen und Klassen anstelle von Queue und LinkedList verwenden. Zum Beispiel,