动态数组----双端循环队列的实现

1. 双端循环的定义:双端循环队列是限定插入和删除操作在表的两端进行的线性表是一种具有队列和栈的性质的数据结构

2. 双端循环队列接口的定义:双端循环队列大致思想与循环队列一样,无非在队首可添加可删除,在队尾也可添加可删除

public interface DoubleLoopQueue<E> extends Queue<E> {
    //向双端循环队列的队首添加元素
    public void addFirst(E element);
    //向双端循环队列的队尾添加元素
    public void addLast(E element);
    //删除双端循环队列的队首元素
    public E removeFirst();
    //删除双端循环队列的队尾元素
    public E reomveLast();
    //获取双端循环队列的队首元素
    public E getFirst();
    //获取双端循环队列的的队尾元素
    public E getLast();
}

3.双端循环队列接口的实现类:双端循环队列一种具有队列和栈的性质的数据结构,因此我们可以使双端循环队列实现队列和栈的接口,但是因为双端循环队列操作特殊,我们仍需从头定义ArrayDoubleLoopQueue。

//实现双端循环队列
public class ArrayDoubleLoopQueue<E> implements DoubleLoopQueue<E>, Stack<E> {

    /*
    双端循环队列 我们要留出一个空的空间 使尾指针始终指向这个空的空间 这样对判断队满和队空时条件就不会相同 避免了二异性
    双端循环队列应该可以向队首和队尾都可以添加元素 并且也可以删除队首和队尾的元素
    元素存储就像时一个环一样
     */

    //存放数据的容器
    private E[] data;
    //队首指针
    private int front;
    //队尾指针
    private int rear;
    //有效元素的个数
    private int size;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值