Question: construct a C++ implementation of a static deque class. needs to be an array implementation template class deque { public: typedef std::size_t size_type; static const

construct a C++ implementation of a static deque class. needs to be an array implementation

template

class deque

{

public:

typedef std::size_t size_type;

static const size_type CAPACITY = 10;

//postcondition: empty deque has been created

deque();

//precondition: deque is not empty

// postcondition: reference to element at front of deque

// has been returned

T& front();

// precondition: deque is not empty

// postcondition: copy of element at front of deque

// has been returned

T front() const;

// precondition: deque is not empty

// postcondition: reference to element at front of deque

// has been returned

T& back();

// precondition: deque is not empty

// postcondition: copy of element at back of deque

// has been returned

T back() const;

// precondition: deque is not full

// postcondition: entry has been inserted at the front

// of the deque

void push_front (const T& entry);

// precondition: deque is not full

// postcondition: entry has been inserted at the back

// of the deque

void push_back (const T& entry);

// precondition: deque is not empty

// postcondition: element at front of deque has been removed

void pop_front();

// precondition: deque is not empty

// postcondition: element at back of deque has been removed

void pop_back();

// postcondition: number of elements in deque has been returned

size_type size() const;

// postcondition: whether deque is empty has been returned

bool empty() const;

// postcondition: whether deque is full has been returned

bool full() const;

// postcondition: returned whether 2 deques are equal - equal is defined

// as the deques have the same number of elements &

// corresponding elements are equal

template

friend bool operator == (const deque& dq1, const deque& dq2);

// postcondition: dq has been display from front to rear on out

template

friend std::ostream& operator<< (std::ostream& out, const deque& dq);

private:

T data[CAPACITY]; // Circular array

size_type first; // Index of item at front of the queue

size_type last; // Index of item at rear of the queue

size_type count; // Total number of items in the queue

// postcondition: returned next index in array

size_type next_index(size_type i) const;

// postcondition: returned previous index in array

size_type prev_index (size_type i) const;

};

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!