Java code
class MyCircularDeque {
private int front;
private int rear;
private int size;
private int [ ] arr;
private int maxSize;
public MyCircularDeque ( int k) {
front = 0 ;
rear = 0 ;
size = 0 ;
maxSize = k;
arr = new int [ maxSize] ;
}
public boolean insertFront ( int value) {
if ( isFull ( ) ) {
return false ;
}
front = ( front - 1 + maxSize) % maxSize;
arr[ front] = value;
size++ ;
return true ;
}
public boolean insertLast ( int value) {
if ( isFull ( ) ) {
return false ;
}
arr[ rear] = value;
rear = ( rear + 1 ) % maxSize;
size++ ;
return true ;
}
public boolean deleteFront ( ) {
if ( isEmpty ( ) ) {
return false ;
}
front = ( front + 1 ) % maxSize;
size-- ;
return true ;
}
public boolean deleteLast ( ) {
if ( isEmpty ( ) ) {
return false ;
}
rear = ( rear - 1 + maxSize) % maxSize;
size-- ;
return true ;
}
public int getFront ( ) {
if ( isEmpty ( ) ) {
return - 1 ;
}
return arr[ front] ;
}
public int getRear ( ) {
if ( isEmpty ( ) ) {
return - 1 ;
}
return arr[ ( rear - 1 + maxSize) % maxSize] ;
}
public boolean isEmpty ( ) {
if ( size > 0 ) {
return false ;
}
return true ;
}
public boolean isFull ( ) {
return size == maxSize;
}
}
提交记录