java 데이터 구조와 알고리즘의 양방향 순환 대기열의 수조 실현 방법

본고는 자바 데이터 구조와 알고리즘의 양방향 순환 대기열의 수조 실현 방법을 실례로 서술하였다.다음과 같이 여러분에게 참고할 수 있도록 공유합니다.
설명해야 할 것은 이 알고리즘을 저는 테스트한 적이 없습니다. 여기서 제시한 위조 코드에 해당하는 알고리즘 사상은 참고로 사용할 수 있습니다!

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: 양방향 순환 대기열의 용도가 매우 커서 일반 대기열로 사용할 수도 있고 창고로 사용할 수도 있습니다!
자바 알고리즘에 관심이 있는 더 많은 독자들은 본 사이트의 주제를 볼 수 있습니다.《 Java 데이터 구조 및 알고리즘 튜토리얼 》、《 Java 운영 DOM 노드 기술 요약 》및
본고에서 기술한 것이 여러분의 자바 프로그램 설계에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기