template <typename Object>
class queue
{
private:
int front, rear;
int maxSize;
vector<Object> elements;
public:
queue( int s ):maxSize( s ),front( 0 ),rear( 0 )
{
elements.resize( maxSize );
}
~queue( )
{
while ( front != rear ) {
deque();
}
}
void enque( Object obj )
{
if (!full()) {
elements[rear] = obj;
rear = ( rear + 1 ) %maxSize;
}
}
Object deque( )
{
Object temp;
if (!empty()) {
temp = elements[front];
front = (front + 1 ) % maxSize;
return temp;
}
}
bool empty( )
{
return front == rear;
}
bool full( )
{
return ( rear + 1 ) % maxSize == front;
}
};
使用循环数组高效的实现队列类
最新推荐文章于 2020-09-07 20:13:08 发布