Πρόγραμμα Java για την εφαρμογή της δομής δεδομένων ουράς

Σε αυτό το παράδειγμα, θα μάθουμε να εφαρμόζουμε τη δομή δεδομένων ουράς στην 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
  • Κατηγορία προτεραιότητας

ενδιαφέροντα άρθρα...