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

实现思路:

      设置一个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;
}


}