Java用數(shù)組實現(xiàn)循環(huán)隊列的示例
更新時間:2017年09月13日 09:05:56 作者:Struggle4L
下面小編就為大家?guī)硪黄狫ava用數(shù)組實現(xiàn)循環(huán)隊列的示例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
復(fù)習(xí)了下數(shù)據(jù)結(jié)構(gòu),用Java的數(shù)組實現(xiàn)一下循環(huán)隊列。
隊列的類
//循環(huán)隊列 class CirQueue{ private int QueueSize; private int front; private int rear; private int[] queueList ; public CirQueue(int QueueSize){ this.QueueSize = QueueSize; queueList = new int[QueueSize]; front = 0; rear = 0; } //獲取隊列頭元素 public int getQueueElement(){ //如果隊列不為空,返回隊頭元素,否則拋出異常提示隊列為空 int element = -1; if(!isEmpty()){ element = queueList[front]; return element; } else { System.out.println("隊列為空"); return -1; } } //出隊 public int deQueue(){ int element = -1; if(!isEmpty()){ element = queueList[front]; front =(front+1)%QueueSize; return element; } else { System.out.println("隊列為空"); return -1; } } //入隊 public void enQueue(int element){ //如果隊列未滿,添加元素到隊尾,否則提示隊列已滿 if(!isFull()){ queueList[rear] = element ; rear = (rear+1)%QueueSize; } else { System.out.println("隊列已滿"); } } //判斷隊列是否為空 public boolean isEmpty(){ boolean b = false; if(rear == front) b = true; return b; } //判斷隊列是否已滿 public boolean isFull(){ boolean b = false; if((rear+1)%QueueSize == front) b = true; return b; } }
創(chuàng)建對象并測試
package com.test; import java.util.*; public class StructTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //新建并初始化存儲空間為3的循環(huán)隊列(方便判斷隊滿條件,浪費一個數(shù)組空間) CirQueue cirQueue = new CirQueue(4); //入隊3個元素 cirQueue.enQueue(1); cirQueue.enQueue(2); cirQueue.enQueue(3); //獲取隊頭元素,獲取 但不改變隊列 int temp = cirQueue.getQueueElement(); System.out.println(temp); //出隊 獲取隊頭元素,并且隊頭指針往后移一位 temp = cirQueue.deQueue(); System.out.println(temp); //再次獲取隊頭元素 temp = cirQueue.getQueueElement(); System.out.println(temp); } }
輸出:
1 1 2
以上這篇Java用數(shù)組實現(xiàn)循環(huán)隊列的示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Java Spring三級緩存和循環(huán)依賴的深入理解
對于循環(huán)依賴,我相信讀者無論只是聽過也好,還是有過了解也好,至少都有所接觸。但是我發(fā)現(xiàn)目前許多博客對于循環(huán)依賴的講解并不清楚,都提到了Spring的循環(huán)依賴解決方案是三級緩存,但是三級緩存每一級的作用是什么,很多博客都沒有提到,本篇文章帶你深入了解2021-09-09Java編程實現(xiàn)統(tǒng)計數(shù)組中各元素出現(xiàn)次數(shù)的方法
這篇文章主要介紹了Java編程實現(xiàn)統(tǒng)計數(shù)組中各元素出現(xiàn)次數(shù)的方法,涉及java針對數(shù)組的遍歷、比較、運算等相關(guān)操作技巧,需要的朋友可以參考下2017-07-07javacv開發(fā)詳解之調(diào)用本機攝像頭視頻
這篇文章主要介紹了javacv開發(fā)詳解之調(diào)用本機攝像頭視頻,對javacv感興趣的同學(xué),可以參考下2021-04-04springboot數(shù)據(jù)訪問和數(shù)據(jù)視圖的使用方式詳解
這篇文章主要為大家介紹了springboot數(shù)據(jù)訪問和數(shù)據(jù)視圖的使用方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06