队列(queue)

基本思想

  队列是一种特殊的线性表,特殊之处在于只允许在表的前端进行删除操作,而在表的后端进行插入操作。和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
  按照先进先出FIFO(first in first out),后进后出的思想进行运作。

基本操作
  • 入对(put):只能在尾部进行入对操作。
  • 出对(poll):只能在头部进行出对操作。
java语言实现

核心类:

public class MyQueue {
    int[] queue;

    public MyQueue() {
        queue = new int[0];
    }
    //入队操作
    public void put(int element){
        int[] newQueue = new int[queue.length + 1];
        System.arraycopy(queue,0,newQueue,0,queue.length);
        newQueue[queue.length] = element;
        queue = newQueue;
        System.out.println(element+"入队");
    }
    //出队操作
    public int poll(){
        if (queue.length == 0){
            throw new RuntimeException("当前队列为空,不能进行出队操作了");
        }
        int element;
        int[] newQueue = new int[queue.length - 1];
        element = queue[0];
        System.arraycopy(queue,1,newQueue,0,queue.length - 1);
        queue = newQueue;
        return element;
    }
}

测试类:

public class QueueTest {
    public static void main(String[] args) {
        MyQueue queue = new MyQueue();
        queue.put(1);
        queue.put(2);
        queue.put(3);
        System.out.println(queue.poll()+"出队");
        queue.put(4);
        System.out.println(queue.poll()+"出队");
        System.out.println(queue.poll()+"出队");
        System.out.println(queue.poll()+"出队");
    }
}

测试结果:

1入队
2入队
3入队
1出队
4入队
2出队
3出队
4出队
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值