基于循环数组存储实现双端队列(模板类)
它支持以下核心功能:
push_back(),push_front(),pop_back()和pop_front()
DoublyQueue.h
#pragma once
#include <iostream>
#include <assert.h>
template<typename T>
class DoublyQueue
{
public:
DoublyQueue(int size = 10);
~DoublyQueue() {
delete[] values; }
bool IsEmpty() const;
bool IsFull() const;
bool push_back(T x);
bool push_front(T x);
bool pop_back();
bool pop_front();
void DisplayQueue() const;
private:
int front = -1; // index to front of the queue
int back = -1; // index to rear of the queue
int count = 0; // number of elements in the queue
int maxSize = 0;
T* values = nullptr;
};
template <typename T>
DoublyQueue<T>::DoublyQueue(int size)
{
values = new T[size];
if (values)