java数据结构——双端队列

 

普通队列是一端进,另一端出的FIFO形式,而双端队列就没有这样的限制级,也就是我们可以在队列两端进行插入或者删除操作。接下来使用双端链表来实现一个双端队列。

1、引进双向链表

地址:https://blog.csdn.net/yoonerloop/article/details/81516166

2、构造方法

public class DoublesEndQueue {

    private DoubleLinkedList linkedList;

    public DoublesEndQueue() {
        linkedList = new DoubleLinkedList();
    }
}

3、添加队列

    /**
     * 插入元素
     */
    public void add(String data){
        if (data == null){
            throw  new NullPointerException();
        }
        if (data.isEmpty()){
            throw new IllegalArgumentException();
        }
        linkedList.insert(data);
    }

4、删除队列:从队头删除

    /**
     * 删除元素:从前端删除
     */
    public String deleteHead() {
        return linkedList.deleteHead().data;
    }

5、删除队列:从队尾删除

    /**
     * 删除元素:从尾部删除
     */
    public String deleteTail(){
        return linkedList.deleteTail().data;
    }

6、查看队列

    /**
     * 查看队列
     */
    public void display(){
        linkedList.displayAll();
    }

7、查看队头

    /**
     * 查看队头
     */
    public String getFront() {
        return linkedList.getTailNode().data;
    }

8、查看队尾

    /**
     * 查看队尾
     */
    public String getEnd() {
        return linkedList.getHeadNode().data;
    }

9、查看队列元素个数

    /**
     * 查看队列里面几个元素
     */
    public int size() {
        return linkedList.length();
    }

10、队列是否为空

    /**
     * 队列是否为空
     */
    public boolean isEmpty() {
        return linkedList.isEmpty();
    }

下一篇将介绍环形队列。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值