构建队列--使用数组方式

本文介绍了如何利用数组构建一个具有enqueue、dequeue、peek、isEmpty和isFull方法的队列。通过设置front和rear指针并利用循环队列的概念,确保添加和移除元素的操作在常数时间内完成,提高了内存效率。
摘要由CSDN通过智能技术生成

使用数组方式创建一个队列,该队列有:

- enqueue() 该方法在队列末尾添加元素 O(1)

- dequeue() 从队列开头移出一项 O(1)

- peek()得到队列第一项,但不删除 O(1)

- isEmpty()

- isFull


准备工作

创建两个指针用来标记下标位置,一个为front,一个为rear,当添加元素时,指针rear后移一位,由于要提高内存效率,于是产生了循环队列,rear并不是一味的自增,而是通过 (rear+1)%数组长度 的关系循环索引。

   int[] item;
   int count;
   int rear;
   int front;
   public ArrayQueue(int length){
   
      item = new int[length];
  }
  • enqueue
public void enqueue(int input){
   
    if(isFull())
        throw new IllegalStateException
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值