Huffman Zipper  v-1.0
Data Compression and Decompression using Greedy Huffman Algorithm
Queue< ValueType > Class Template Reference

This class models a linear structure called a Queue. More...

#include <Queue.h>

Public Member Functions

 Queue ()
 Initializes a new empty queue. More...
 
virtual ~Queue ()=default
 Frees any heap storage associated with this queue. More...
 
void clear ()
 Removes all elements from the queue. More...
 
int size () const
 
bool isEmpty () const
 
void enqueue (const ValueType &value)
 Adds value to the end of the queue. More...
 
ValueType dequeue ()
 Removes and returns the first item in the queue. More...
 
ValueType peek () const
 
ValueType & getFront ()
 
ValueType & getBack ()
 

Private Member Functions

void expandRingBufferCapacity ()
 This private method doubles the capacity of the ringBuffer vector. More...
 

Private Attributes

std::vector< ValueType > ringBuffer
 Vector of ValueType for Circular Queue. More...
 
int front
 index to front of the queue More...
 
int rear
 index to rear of the queue More...
 
int count
 number of value in the queue More...
 
int capacity
 capacity of the queue More...
 

Detailed Description

template<typename ValueType>
class Queue< ValueType >

This class models a linear structure called a Queue.

In queue ,values are added at one end and removed from the other. This discipline gives rise to a first-in/first-out behavior (FIFO).

Definition at line 14 of file Queue.h.

Constructor & Destructor Documentation

◆ Queue()

template<typename ValueType >
Queue< ValueType >::Queue

Initializes a new empty queue.

Definition at line 68 of file Queue.h.

◆ ~Queue()

template<typename ValueType >
virtual Queue< ValueType >::~Queue ( )
virtualdefault

Frees any heap storage associated with this queue.

Member Function Documentation

◆ clear()

template<typename ValueType >
void Queue< ValueType >::clear

Removes all elements from the queue.

Definition at line 83 of file Queue.h.

◆ dequeue()

template<typename ValueType >
ValueType Queue< ValueType >::dequeue

Removes and returns the first item in the queue.

Definition at line 102 of file Queue.h.

◆ enqueue()

template<typename ValueType >
void Queue< ValueType >::enqueue ( const ValueType &  value)

Adds value to the end of the queue.

Definition at line 92 of file Queue.h.

◆ expandRingBufferCapacity()

template<typename ValueType >
void Queue< ValueType >::expandRingBufferCapacity
private

This private method doubles the capacity of the ringBuffer vector.


It also shifts all the elements back to the beginning of the vector.

Definition at line 134 of file Queue.h.

◆ getBack()

template<typename ValueType >
ValueType & Queue< ValueType >::getBack
Returns
the last value in the queue by reference.

Definition at line 127 of file Queue.h.

◆ getFront()

template<typename ValueType >
ValueType & Queue< ValueType >::getFront
Returns
the first value in the queue by reference.

Definition at line 120 of file Queue.h.

◆ isEmpty()

template<typename ValueType >
bool Queue< ValueType >::isEmpty
Returns
true if the queue contains no elements.

Definition at line 78 of file Queue.h.

◆ peek()

template<typename ValueType >
ValueType Queue< ValueType >::peek
Returns
the first value in the queue, without removing it

Definition at line 113 of file Queue.h.

◆ size()

template<typename ValueType >
int Queue< ValueType >::size
Returns
the number of values in the queue.

Definition at line 73 of file Queue.h.

Member Data Documentation

◆ capacity

template<typename ValueType >
int Queue< ValueType >::capacity
private

capacity of the queue

Definition at line 21 of file Queue.h.

◆ count

template<typename ValueType >
int Queue< ValueType >::count
private

number of value in the queue

Definition at line 20 of file Queue.h.

◆ front

template<typename ValueType >
int Queue< ValueType >::front
private

index to front of the queue

Definition at line 17 of file Queue.h.

◆ rear

template<typename ValueType >
int Queue< ValueType >::rear
private

index to rear of the queue

Definition at line 18 of file Queue.h.

◆ ringBuffer

template<typename ValueType >
std::vector<ValueType> Queue< ValueType >::ringBuffer
private

Vector of ValueType for Circular Queue.

Definition at line 16 of file Queue.h.