Java中怎么定義和使用循環(huán)隊(duì)列,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
十年的清流網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整清流建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“清流網(wǎng)站設(shè)計(jì)”,“清流網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
一、概述:
1、原理:
與普通隊(duì)列的區(qū)別在于循環(huán)隊(duì)列添加數(shù)據(jù)時(shí),如果其有效數(shù)據(jù)end == maxSize - 1(最大空間)的話,end指針又移動(dòng)到-1的位置
刪除數(shù)據(jù)時(shí),如果head== maxSize時(shí) head指針移動(dòng)到0的位置
2、示例圖:
二、實(shí)現(xiàn)代碼:
package com.java.queue; /** * @描述 對列 * @項(xiàng)目名稱 Java_DataStruct * @包名 com.java.stack * @類名 Queue * @author chenlin * @version 1.0 * @SVN $Rev$ */ public class CycleQueue { private long[] arr; private int maxSize;// 最大空間 private int len;// 有效長度 private int head;// 隊(duì)頭 private int end;// 隊(duì)尾 public CycleQueue(int size) { this.maxSize = size; this.arr = new long[maxSize]; this.len = 0; this.head = 0; this.end = -1; } /** * 從隊(duì)尾插入數(shù)據(jù) * * @param value */ public void insert(long value) { //如果滿了,為什么是maxSize - 1 ,因?yàn)閺?1開始 if (end == maxSize - 1) { end = -1; } arr[++end] = value; len++; } /** * 從隊(duì)頭移除數(shù)據(jù) */ public long remove() { long result = arr[head++]; if (head == maxSize) { head = 0; } len--; return result; } /** * 判斷是否為空 * * @return */ public boolean isEmpty() { return (len == 0); } /** * 判斷是否滿了 * * @return */ public boolean isFull() { return (len == maxSize); } /** * 獲得隊(duì)列的有效長度 * * @return */ public int size() { return len; } public static void main(String[] args) { CycleQueue queue = new CycleQueue(50); queue.insert(22); queue.insert(33); queue.insert(44); queue.insert(534); queue.insert(21); queue.insert(55); System.out.println("創(chuàng)新互聯(lián)測試結(jié)果:"); while (!queue.isEmpty()) { System.out.print(queue.remove() + " "); } System.out.println(); queue.insert(33); queue.insert(13); queue.insert(23); while (!queue.isEmpty()) { System.out.print(queue.remove() + " "); } } }
運(yùn)行結(jié)果:
關(guān)于Java中怎么定義和使用循環(huán)隊(duì)列問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
文章標(biāo)題:Java中怎么定義和使用循環(huán)隊(duì)列
瀏覽地址:http://chinadenli.net/article48/jsijep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、服務(wù)器托管、App設(shè)計(jì)、網(wǎng)站維護(hù)、網(wǎng)站制作、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)