📜  使用 Deque 实现堆栈和队列(1)

📅  最后修改于: 2023-12-03 14:49:38.688000             🧑  作者: Mango

使用 Deque 实现堆栈和队列

Deque(双端队列)是一种线性数据结构,支持在两端进行元素的插入、删除操作,因此可以方便地实现堆栈和队列的功能。在java中,可以通过LinkedList实现Deque。

堆栈的实现

堆栈是一种后进先出(LIFO)的数据结构,可以通过Deque中的push()和pop()方法来实现。push()用来将元素加入堆栈,pop()用来取出栈顶元素。

下面是通过Deque实现堆栈的示例代码:

import java.util.Deque;
import java.util.LinkedList;

public class Stack {
    private Deque<Integer> deque;

    public Stack() {
        deque = new LinkedList<>();
    }

    public void push(int val) {
        deque.offerLast(val);
    }

    public int pop() {
        return deque.pollLast();
    }

    public boolean isEmpty() {
        return deque.isEmpty();    
    }

    public int size() {
        return deque.size();
    }
}
队列的实现

队列是一种先进先出(FIFO)的数据结构,可以通过Deque中的offer()和poll()方法来实现。offer()用来将元素加入队列尾部,poll()用来删除队列头部的元素。

下面是通过Deque实现队列的示例代码:

import java.util.Deque;
import java.util.LinkedList;

public class Queue {
    private Deque<Integer> deque;

    public Queue() {
        deque = new LinkedList<>();
    }

    public void offer(int val) {
        deque.offerLast(val);
    }

    public int poll() {
        return deque.pollFirst();
    }

    public boolean isEmpty() {
        return deque.isEmpty();
    }

    public int size() {
        return deque.size();
    }
}

以上是使用Deque实现堆栈和队列的内容。由于Deque是支持插入、删除操作的线性数据结构,因此除了上面所示的堆栈和队列,还可以通过Deque实现其他类型的数据结构。