Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào chúng ta có thể triển khai một hàng đợi bằng cách sử dụng Stack trong Java?

A Hàng đợi mở rộng lớp Bộ sưu tập và nó hỗ trợ các thao tác chèn và xóa bằng cách sử dụng nhập trước xuất trước (FIFO) . A Ngăn xếp là một lớp con của Vectơ và nó đại diện cho cuối cùng vào trước (LIFO) chồng các đối tượng. Phần tử cuối cùng được thêm ở đầu ngăn xếp (Vào) có thể là phần tử đầu tiên bị xóa (Ra) khỏi ngăn xếp. Chúng tôi cũng có thể triển khai Hàng đợi bằng cách sử dụng Ngăn xếp trong chương trình bên dưới.

Ví dụ

import java.util.*;
public class QueueUsingStackTest {
   private Stack stack1 = new Stack<>();
   private Stack stack2 = new Stack<>();
   public void enqueue(int element) {
      stack1.push(element);
      System.out.println(element + " inserted");
   }
   public void dequeue() {
      if(stack2.isEmpty()) {
         while (!stack1.isEmpty()) {
            stack2.push(stack1.pop());
         }
      }
      System.out.println(stack2.pop() + " removed");
   }
   public static void main(String args[]) {
      QueueUsingStackTest test = new QueueUsingStackTest();
      test.enqueue(10);
      test.enqueue(50);
      test.enqueue(100);
      test.dequeue();
   }
}

Đầu ra

10 inserted
50 inserted
100 inserted
10 removed