下文是笔者讲述使用数组实现队列效果的方法分享,如下所示:
实现思路:
设置一个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; } }