如何使用一个数组实现一个队列呢?

下文是笔者讲述使用数组实现队列效果的方法分享,如下所示:

实现思路:

      设置一个startIndex和curIndex及size三个变量,即可使用数组实现一个队列效果,如下所示

package com.java265.algorithm;

/*
 * 作者:java265.com
 * 使用数组实现一个队列效果,
 * 队列先进先出
 * */
public class ArrayToQueue {

    public static void main(String[] args) {

        ArrayQueue.add(190);
        ArrayQueue.add(2);
        ArrayQueue.add(1);
        ArrayQueue.add(9);
        ArrayQueue.add(8);
        ArrayQueue.add(15);
        ArrayQueue.add(14);

        System.out.println("=============");

        ArrayQueue.poll();
        ArrayQueue.poll();
        ArrayQueue.poll();
        ArrayQueue.poll();
        ArrayQueue.poll();
        ArrayQueue.poll();
        ArrayQueue.poll();
        ArrayQueue.poll();
        ArrayQueue.poll();

    }

}

class ArrayQueue{
    
    // 固定栈大小
    static int[] arr = new int[3];

    // startIndex 第一个元素索引
    static int startIndex = 0;

    // 当前位置
    static int curIndex = 0;

    // 队列元素个数
    static int size = 0;

    static {

    }

    static void add(int a) {
        if (size == arr.length) {
            System.out.println("队列已满,入列失败!");
            return;
        }

        arr[curIndex++] = a;
        curIndex = (curIndex == arr.length) ? 0 : curIndex;
        ++size;

    }

    static void poll() {
        if (size == 0) {
            System.out.println("队列为空,出队列失败!");
            return;
        }

        System.out.println("出队列元素为:" + arr[startIndex++]);
        startIndex = (startIndex == arr.length) ? 0 : startIndex;
        --size;
    }
    
    
}

 

上一篇:0132-分割回文串II


下一篇:快速排序(萝卜填坑算法)【必会知识】