Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách triển khai Stack bằng Queue trong Java

Stack là một lớp con của Vector và đại diện cho ngăn xếp đối tượng last-in-first-out (LIFO - vào sau ra trước). Phần tử cuối cùng được thêm vào đỉnh ngăn xếp (In) có thể là phần tử đầu tiên bị loại bỏ (Out) khỏi ngăn xếp.

Queue mở rộng giao diện Collection và hỗ trợ các hoạt động chèn và xóa sử dụng first-in-first-out (FIFO - vào trước ra trước). Chúng ta cũng có thể triển khai Stack bằng Queue như chương trình dưới đây.

Ví dụ

import java.util.*;

public class StackFromQueueTest {
    Queue queue = new LinkedList();

    public void push(int value) {
        int queueSize = queue.size();
        queue.add(value);
        for (int i = 0; i < queueSize; i++) {
            queue.add(queue.remove());
        }
    }

    public void pop() {
        System.out.println("Phần tử bị xóa khỏi stack: " + queue.remove());
    }

    public static void main(String[] args) {
        StackFromQueueTest test = new StackFromQueueTest();
        test.push(10);
        test.push(20);
        test.push(30);
        test.push(40);
        System.out.println(test.queue);
        test.pop();
        System.out.println(test.queue);
    }
}

Kết quả

[40, 30, 20, 10]
Phần tử bị xóa khỏi stack là: 40
[30, 20, 10]