Σε αυτό το παράδειγμα, θα μάθουμε να εφαρμόζουμε τη δομή δεδομένων ουράς στην Java.
Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:
- Διεπαφή ουράς Java
- Java Generics
Παράδειγμα 1: Πρόγραμμα Java για εφαρμογή Stack
public class Queue ( int SIZE = 5; int items() = new int(SIZE); int front, rear; Queue() ( front = -1; rear = -1; ) // check if the queue is full boolean isFull() ( if (front == 0 && rear == SIZE - 1) ( return true; ) return false; ) // check if the queue is empty boolean isEmpty() ( if (front == -1) return true; else return false; ) // insert elements to the queue void enQueue(int element) ( // if queue is full if (isFull()) ( System.out.println("Queue is full"); ) else ( if (front == -1) ( // mark front denote first element of queue front = 0; ) rear++; // insert element at the rear items(rear) = element; System.out.println("Insert " + element); ) ) // delete element from the queue int deQueue() ( int element; // if queue is empty if (isEmpty()) ( System.out.println("Queue is empty"); return (-1); ) else ( // remove element from the front of queue element = items(front); // if the queue has only one element if (front>= rear) ( front = -1; rear = -1; ) else ( // mark next element as the front front++; ) System.out.println( element + " Deleted"); return (element); ) ) // display element of the queue void display() ( int i; if (isEmpty()) ( System.out.println("Empty Queue"); ) else ( // display the front of the queue System.out.println("Front index-> " + front); // display element of the queue System.out.println("Items -> "); for (i = front; i " + rear); ) ) public static void main(String() args) ( // create an object of Queue class Queue q = new Queue(); // try to delete element from the queue // currently queue is empty // so deletion is not possible q.deQueue(); // insert elements to the queue for(int i = 1; i < 6; i ++) ( q.enQueue(i); ) // 6th element can't be added to queue because queue is full q.enQueue(6); q.display(); // deQueue removes element entered first i.e. 1 q.deQueue(); // Now we have just 4 elements q.display(); ) )
Παραγωγή
Η ουρά είναι κενή Εισαγωγή 1 Εισαγωγή 2 Εισαγωγή 3 Εισαγωγή 4 Εισαγωγή 5 Η ουρά είναι πλήρης Ευρετήριο εμπρός-> 0 Στοιχεία -> 1 2 3 4 5 Πίσω ευρετήριο-> 4 1 Διαγραμμένο μπροστινό ευρετήριο-> 1 Είδη -> 2 3 4 5 Πίσω ευρετήριο -> 4
Στο παραπάνω παράδειγμα, έχουμε εφαρμόσει τη δομή δεδομένων ουράς στην Java.
Για να μάθετε πώς λειτουργεί η ουρά, επισκεφθείτε τη Δομή δεδομένων ουράς.
Παράδειγμα 2: Εφαρμογή στοίβας χρησιμοποιώντας διεπαφή ουράς
Η Java παρέχει μια ενσωματωμένη Queue
διεπαφή που μπορεί να χρησιμοποιηθεί για την εφαρμογή μιας ουράς.
import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // enqueue // insert element at the rear of the queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // dequeue // delete element from the front of the queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Queue after deletion: " + numbers); ) )
Παραγωγή
Ουρά: (1, 2, 3) Στοιχείο που αφαιρέθηκε: 1 Ουρά μετά τη διαγραφή: (2, 3)
Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε τη Queue
διεπαφή για να εφαρμόσουμε την ουρά στην Java. Εδώ, χρησιμοποιήσαμε την LinkedList
κλάση που εφαρμόζει τη Queue
διεπαφή.
- number.offer () - εισαγάγετε στοιχεία στο πίσω μέρος της ουράς
- number.poll () - αφαιρέστε ένα στοιχείο από το μπροστινό μέρος της ουράς
Παρατηρήστε, χρησιμοποιήσαμε τις αγκύλες γωνίας κατά τη δημιουργία της ουράς. Αντιπροσωπεύει ότι η ουρά είναι γενικού τύπου.
Μπορούμε επίσης να χρησιμοποιήσουμε άλλες διεπαφές και τάξεις αντί για Queue
και LinkedList
. Για παράδειγμα,
- Διεπαφή Deque
- Κατηγορία ArrayDeque
- Κατηγορία προτεραιότητας