Go to the documentation of this file.
15 #ifndef __SEQQUEUE_HH__
16 #define __SEQQUEUE_HH__
34 class seqQueue :
public Queue<T>
205 : _elem(new value_type[initSize]), _maxSize(initSize), _front(0), _rear(0)
218 return _front == _rear;
224 return ((_rear >= _front) ? _rear - _front : _maxSize + _rear - _front);
230 return _elem[(_front + 1) % _maxSize];
236 return _elem[(_front + 1) % _maxSize];
254 if (size() == _maxSize - 1)
257 _elem[_rear = (_rear + 1) % _maxSize] = val;
263 if (size() == _maxSize - 1)
266 _elem[_rear = (_rear + 1) % _maxSize] = std::move(val);
272 _front = (_front + 1) % _maxSize;
278 value_type *old = _elem;
279 _elem =
new value_type[2 * _maxSize + 1];
281 for (size_type i = 1; i <= size(); ++i)
282 _elem[i] = old[(_front + i) % _maxSize];
287 _maxSize = 2 * _maxSize + 1;
virtual ~seqQueue()
Destroy the seq Queue object.
void push(const value_type &val)
Inserts a new element at the end of the queue, after its current last element.
bool empty() const
Test whether container is empty.
virtual bool isEmpty() const
判队空
reference & back()
Returns a reference to the last element in the queue.
virtual value_type getHead() const
Get the Head object.
×Զ¨ÒåµĶÓÁÐÀÔÚQueueÃû×ֿռäÏÂ(linkQueue.hh)
seqQueue(size_type initSize=10)
Construct a new seq Queue object.
value_type * _elem
存储元素的内部数组
void pop()
Removes the next element in the queue, effectively reducing its size by one.
reference & front()
Returns a reference to the next element in the queue.
value_type & reference
数据的引用
virtual value_type deQueue()
出队一个元素
virtual void enQueue(const_reference &x)
入队一个元素
const typedef value_type & const_reference
数据的常量引用
size_type size() const
Returns the number of elements in the queue.
size_type _front
队头/尾下标 数据范围(front, rear]: 在循环意义下 初始状态: front == rear == 0 队列满: front == (rear + 1) % maxSize 队列空: fro...
value_type & reference
数据的引用