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

วิธี Implement Queue ด้วย Stack ใน Java


Queue extends Collection interface รองรับ insert/remove แบบ first-in-first-out (FIFO) Stack เป็นคลาสย่อยของ Vector แทน stack แบบ last-in-first-out (LIFO) องค์ประกอบล่าสุดที่เพิ่มด้านบน (In) จะเป็นตัวแรกที่ถูกลบ (Out) เราสามารถ implement Queue ด้วย Stack ได้ในโปรแกรมด้านล่าง

ตัวอย่าง

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();
    }
}

ผลลัพธ์

10 inserted 50 inserted 100 inserted 10 removed