Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java เพื่อใช้งานโครงสร้างข้อมูลคิว


ในบทความนี้ เราจะเข้าใจวิธีการใช้โครงสร้างข้อมูลคิว คิวคือโครงสร้างเชิงเส้นซึ่งเป็นไปตามลำดับเฉพาะในการดำเนินการ ลำดับคือเข้าก่อนออกก่อน (FIFO)

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -

สมมติว่าข้อมูลที่เราป้อนคือ

Input Queue: [150, 300, 450, 600]

ผลลัพธ์ที่ต้องการจะเป็น

After removing an element, the elements of the queue are: [300, 450, 600]

อัลกอริทึม

Step 1 - START
Step 2 - Declare namely
Step 3 - Add elements to it using the ‘offer’ method.
Step 4 - Display the queue content
Step 5 - Use the ‘poll’ method to delete the element from the queue.
Step 6 - Display the elements of the queue after calling the ‘poll’ method.
Step 7 - Display the result
Step 8 - Stop

ตัวอย่างที่ 1

ที่นี่ เราใช้ฟังก์ชันที่กำหนดไว้ในตัวเพื่อดำเนินการกับสแต็กทั้งหมด

import java.util.Queue;
import java.util.LinkedList;
public class Demo {
   public static void main(String[] args) {
      System.out.println("The required packages have been imported");
      Queue<Integer> input_queue = new LinkedList<>();
      input_queue.offer(150);
      input_queue.offer(300);
      input_queue.offer(450);
      input_queue.offer(600);
      System.out.println("The queue is defined as: " + input_queue);
      int removedNumber = input_queue.poll();
      System.out.println("After removing an element, the elements of the queue are: " +input_queue);
   }
}

ผลลัพธ์

The required packages have been imported
The queue is defined as: [150, 300, 450, 600]
After removing an element, the elements of the queue are: [300, 450, 600]

ตัวอย่างที่ 2

ที่นี่เราใช้ฟังก์ชันที่ผู้ใช้กำหนดเพื่อดำเนินการกับสแต็กทั้งหมด

public class Queue {
   int SIZE = 5;
   int items[] = new int[SIZE];
   int front, rear;
   Queue() {
      front = -1;
      rear = -1;
   }
   boolean isFull() {
      if (front == 0 && rear == SIZE - 1) {
         return true;
      }
      return false;
   }
   boolean isEmpty() {
      if (front == -1)
         return true;
      else
         return false;
   }
   void enQueue(int element) {
      if (isFull()) {
         System.out.println("\nThe queue is full");
      }
      else {
         if (front == -1) {
            front = 0;
         }
         rear++;
         items[rear] = element;
         System.out.println("\nThe element " + element + " is inserted");
      }
   }
   int deQueue() {
      int element;
      if (isEmpty()) {
         System.out.println("\nThe queue is empty");
         return (-1);
      }
      else {
         element = items[front];
         if (front >= rear) {
            front = -1;
            rear = -1;
         }
         else {
            front++;
         }
         System.out.println("\nThe element " +element + " is deleted");
         return (element);
      }
   }
   void display() {
      int i;
      if (isEmpty()) {
         System.out.println("The queue is empty ");
      }
      else {
         System.out.println("\nThe elements of the queue are: ");
         for (i = front; i <= rear; i++)
            System.out.print(items[i] + " ");
      }
   }
   public static void main(String[] args) {
      Queue input_queue = new Queue();
      for(int i = 1; i < 6; i ++) {
         input_queue.enQueue(i * 100);
      }
      System.out.println("The queue is defined as: " + input_queue);
      input_queue.enQueue(6);
      input_queue.display();
      input_queue.deQueue();
      input_queue.display();
   }
}

ผลลัพธ์

The element 100 is inserted

The element 200 is inserted

The element 300 is inserted

The element 400 is inserted

The element 500 is inserted
The queue is defined as: Queue@2a139a55

The queue is full

The elements of the queue are:
100 200 300 400 500
The element 100 is deleted

The elements of the queue are:
200 300 400 500