java數(shù)據(jù)結(jié)構(gòu)與算法之雙向循環(huán)隊(duì)列的數(shù)組實(shí)現(xiàn)方法
本文實(shí)例講述了java數(shù)據(jù)結(jié)構(gòu)與算法之雙向循環(huán)隊(duì)列的數(shù)組實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
需要說明的是此算法我并沒有測試過,這里給出的相當(dāng)于偽代碼的算法思想,所以只能用來作為參考!
package source; public class Deque { private int maxSize; private int left; private int right; private int nItems; private long[] myDeque; //constructor public Deque(int maxSize){ this.maxSize = maxSize; this.myDeque = new long[this.maxSize]; this.nItems = 0; this.left = this.maxSize; this.right = -1; } //insert a number into left side public void insertLeft(long n){ if(this.left==0) this.left = this.maxSize; this.myDeque[--this.left] = n; this.nItems++; } //insert a number into right side public void insertRight(long n){ if(this.right==this.maxSize-1) this.right = -1; this.myDeque[++this.right] = n; this.nItems++; } //remove from left public long removeLeft(){ long temp = this.myDeque[this.left++]; if(this.left==this.maxSize) this.left = 0; this.nItems--; return temp; } //remove from right public long removeRight(){ long temp = this.myDeque[this.right--]; if(this.left==-1) this.left = this.maxSize-1; this.nItems--; return temp; } //return true if deQue is empty public boolean isEmpty(){ return (this.nItems==0); } //return size of the deQue public int size(){ return this.nItems; } }
PS:雙向循環(huán)隊(duì)列的用處很大,可以做為普通隊(duì)列,也可以用來做棧來用!
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Java以編程方式實(shí)現(xiàn)JAR文件的創(chuàng)建
在這篇文章中,我們將為大家詳細(xì)介紹一下利用Java語言以編程方式創(chuàng)建jar文件的過程。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-07-07Java和JVM的重載識(shí)別,重寫方法是怎樣進(jìn)行的
這篇文章主要介紹了Java和JVM的重載識(shí)別,重寫方法是怎樣進(jìn)行的,違章圍繞了Java和JVM的重載識(shí)別,重寫方法展開相關(guān)資料,需要的小伙伴可以參考一下,希望對你的工作或?qū)W習(xí)有所幫助2022-01-01Spring JDK動(dòng)態(tài)代理實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Spring JDK動(dòng)態(tài)代理實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02Java項(xiàng)目導(dǎo)出數(shù)據(jù)為 PDF 文件的操作代碼
一個(gè)小需求,需要將頁面上的數(shù)據(jù)導(dǎo)出為PDF,正常情況下這個(gè)需求需要讓前端來做,但是現(xiàn)在上面讓咱們后端來做,也沒問題,這篇文章主要介紹了Java項(xiàng)目導(dǎo)出數(shù)據(jù)為 PDF 文件的操作代碼,需要的朋友可以參考下2022-12-12Java設(shè)計(jì)模式之工廠模式實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之工廠模式實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了工廠模式的分類、原理、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-12-12java網(wǎng)絡(luò)編程之識(shí)別示例 獲取主機(jī)網(wǎng)絡(luò)接口列表
一個(gè)客戶端想要發(fā)起一次通信,先決條件就是需要知道運(yùn)行著服務(wù)器端程序的主機(jī)的IP地址是多少。然后我們才能夠通過這個(gè)地址向服務(wù)器發(fā)送信息。2014-01-01springboot2學(xué)習(xí)世界著名程序springboot開發(fā)體驗(yàn)
這篇文章主要為大家介紹了世界著名程序springboot開發(fā)體驗(yàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05