国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Java 1.8使用數(shù)組實現(xiàn)循環(huán)隊列

瀏覽:2日期:2022-08-21 18:52:43

本文實例為大家分享了Java 1.8使用數(shù)組實現(xiàn)循環(huán)隊列的具體代碼,供大家參考,具體內(nèi)容如下

1、引入

使用數(shù)組實現(xiàn)循環(huán)隊列,功能如下:

1)isFull():隊列滿?2)isEmpty():隊列空?3)add():添加元素。4)pop():移除元素。5)display():展示隊列。6)getSize():獲取當(dāng)前隊列元素個數(shù)。

2、代碼

package DataStructure;import java.util.Arrays;/** * @author: Inki * @email: inki.yinji@qq.com * @create: 2020 1022 * @last_modify: 2020 1023 */public class MyArrayQueue<AnyType> { /** * The default max size of my array queue. */ private final int DEFAULT_MAX_SIZE = 10; /** * The max size of my array queue. */ private int maxSize; /** * The front of my array queue. */ private int front; /** * The rear of my array queue. */ private int rear; /** * Using array to simulate queue. */ private AnyType[] arrQueue; /** * The first constructor. */ public MyArrayQueue() { this(DEFAULT_MAX_SIZE); }//Of the first constructor /** * The second constructor. */ public MyArrayQueue(int paraMaxSize) { maxSize = paraMaxSize + 1; arrQueue = (AnyType[]) new Object[maxSize]; front = 0; rear = 0; }//Of the second constructor /** * Queue is full? * @return: * True if full else false. */ public boolean isFull() { return (rear + 1) % maxSize == front; }//Of isFull /** * Queue is empty? * @return: * True if empty else false. */ public boolean isEmpty() { return front == rear; }//Of isEmpty /** * Add element. * @param: * paraVal: * The given value. */ public void add(AnyType paraVal) { if(isFull()) { System.out.println('The queue is full.'); return; }//Of if arrQueue[rear] = paraVal; rear = (rear + 1) % maxSize; }//Of add /** * Pop element. */ public AnyType pop() { if (isEmpty()) { throw new RuntimeException('The queue is full.'); }//Of if AnyType retVal = arrQueue[front]; front = (front + 1) % maxSize; return retVal; }//of pop /** * Display array queue. */ public void display() { if (isEmpty()) { System.out.println('The queue is empty.'); return; }//Of if System.out.print('The queue is: ['); int i = front; while (i != (rear + maxSize- 1) % maxSize) { System.out.printf('%s, ', arrQueue[i]); i = (i + 1) % maxSize; }//Of while System.out.printf('%s]', arrQueue[rear - 1]); }//Of display /** * Get current size of my array queue. */ public int getSize() { return (rear - front + maxSize) % maxSize + 1; }//Of getSize /** * The main **/ public static void main(String[] args) { MyArrayQueue <Integer> testArrayQueue = new MyArrayQueue<>(3); testArrayQueue.add(1); testArrayQueue.add(2); testArrayQueue.add(4); testArrayQueue.pop(); testArrayQueue.display(); }//Of main}//Of MyArrayQueue

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 五大连池市| 贵港市| 贺兰县| 巴林右旗| 靖安县| 昌吉市| 车致| 措勤县| 璧山县| 新绛县| 张掖市| 宜昌市| 陕西省| 兴城市| 屯留县| 城步| 梁山县| 全椒县| 抚松县| 砚山县| 金平| 郑州市| 灵寿县| 嵊泗县| 聂荣县| 莲花县| 华阴市| 鄯善县| 静乐县| 侯马市| 烟台市| 台北市| 甘南县| 涟水县| 抚州市| 那曲县| 宜丰县| 修武县| 贵港市| 襄垣县| 屯留县|