この記事では、Javaデータ構造とアルゴリズムの双方向ループキューの配列実装方法について説明します。次のように、参照のために共有してください。
このアルゴリズムをテストしていないことに注意してください。ここで与えられるアルゴリズムのアイデアは、擬似コードと同等であるため、参照としてのみ使用できます!
パッケージソース; public class deque {private int maxsize;プライベートINT左;プライベートint右;プライベートインターメント;プライベートロング[] mydequ; // constructor public deque(int maxsize){this.maxsize = maxsize; this.mydequ = new long [this.maxsize]; this.nitems = 0; this.left = this.maxsize; this.right = -1; } //左側に数値を挿入して、左側のパブリックvoid insertleft(long n){if(this.left == 0)this.left = this.maxsize; this.mydequ [ - this.left] = n; this.nitems ++; } //右側に数値を挿入しますパブリックvoid insertright(long n){if(this.right == this.maxsize -1)this.right = -1; this.mydequ [++ this.right] = n; this.nitems ++; } //左から削除long removeleft(){long temp = this.mydequ [this.left ++]; if(this.left == this.maxsize)this.left = 0; this.nitems - ; return temp; } //右の公共のlong removeright(){long temp = this.mydequ [this.right-]; if(this.left == -1)this.left = this.maxsize-1; this.nitems - ; return temp; } // return true dequeが空の場合はpublic boolean isempty(){return(this.nitems == 0); } // deque public int size(){return this.nitems; }}PS:双方向ループキューは非常に有用です。それらは通常のキューとして、またはスタックとして使用できます!
Javaアルゴリズムの詳細については、このサイトに興味のある読者は、「Javaデータ構造とアルゴリズムのチュートリアル」、「Java操作DOMノードのヒントの要約」、「Javaファイルの要約およびディレクトリ操作のヒント」、「Java Cache操作のヒントの要約」というトピックを見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。