java 데이터 구조와 알고리즘의 양방향 순환 대기열의 수조 실현 방법
1982 단어 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 노드 기술 요약 》및
본고에서 기술한 것이 여러분의 자바 프로그램 설계에 도움이 되기를 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.