LeetCode Question: 622. Design Circular Queue (Level : Medium)
Note:- Scroll horizontally to see the full line of code.
class MyCircularQueue
{
public:
int size;
int *q;
int rear = -1;
MyCircularQueue(int k)
{
size = k;
q = new int[size];
}
bool enQueue(int value)
{
if (rear < size - 1)
{
q[++rear] = value;
return true;
}
else
{
return false;
}
}
bool deQueue()
{
if (rear >= 0)
{
for (int i = 1; i <= rear; i++)
{
q[i - 1] = q[i];
}
rear--;
return true;
}
else
{
return false;
}
}
int Front()
{
if (rear >= 0)
{
return q[0];
}
else
{
return -1;
}
}
int Rear()
{
if (rear >= 0)
{
return q[rear];
}
else
{
return -1;
}
}
bool isEmpty()
{
if (rear == -1)
{
return true;
}
else
{
return false;
}
}
bool isFull()
{
if (rear == size - 1)
{
return true;
}
else
{
return false;
}
}
};
/**
*Your MyCircularQueue object will be instantiated and called as such:
*MyCircularQueue* obj = new MyCircularQueue(k);
*bool param_1 = obj->enQueue(value);
*bool param_2 = obj->deQueue();
*int param_3 = obj->Front();
*int param_4 = obj->Rear();
*bool param_5 = obj->isEmpty();
*bool param_6 = obj->isFull();
*/
Comments
Post a Comment