C++代码:
int*myCircularDeque;
int head,end,myCircularDeque_size;
int longestsize;
/** Initialize your data structure here. Set the size of the deque to be k. */
MyCircularDeque(int k) {
myCircularDeque=new int[k];
myCircularDeque_size=0;
head=0;
end=0;
longestsize=k;
}
/** Adds an item at the front of Deque. Return true if the operation is successful. */
bool insertFront(int value) {
if(isFull())
{
return false;
}
--head;
if(head<0)
{
head=longestsize-1;
}
myCircularDeque[head]=value;
++myCircularDeque_size;
return true;
}
/** Adds an item at the rear of Deque. Return true if the operation is successful. */
bool insertLast(int value) {
if(isFull())
{
return false;
}
myCircularDeque[end++]=value;
if(end==longestsize)
{
end=0;
}
++myCircularDeque_size;
return true;
}
/** Deletes an item from the front of Deque. Return true if the operation is successful. */
bool deleteFront() {
if(isEmpty())
{
return false;
}
++head;
if(head==longestsize)
{
head=0;
}
--myCircularDeque_size;
return true;
}
/** Deletes an item from the rear of Deque. Return true if the operation is successful. */
bool deleteLast() {
if(isEmpty())
{
return false;
}
--end;
if(end<0)
{
end=longestsize-1;
}
--myCircularDeque_size;
return true;
}
/** Get the front item from the deque. */
int getFront() {
if(isEmpty())
{
return -1;
}
return myCircularDeque[head];
}
/** Get the last item from the deque. */
int getRear() {
if(isEmpty())
{
return -1;
}
int num=end-1;
if(num<0)
{
num=longestsize-1;
}
return myCircularDeque[num];
}
/** Checks whether the circular deque is empty or not. */
bool isEmpty() {
if(myCircularDeque_size==0)