#include "ece250.h" #include "Cyclic_list.h" #include "Exception.h" template Cyclic_list::Cyclic_list(): list_head( nullptr ), list_tail( nullptr ), list_size( 0 ) { // enter your implementation here } template Cyclic_list::Cyclic_list( Cyclic_list const &list ): list_head( nullptr ), list_tail( nullptr ), list_size( 0 ) { // enter your implementation here } template Cyclic_list::~Cyclic_list() { // enter your implementation here } template int Cyclic_list::size() const { // enter your implementation here return 0; } template bool Cyclic_list::empty() const { // enter your implementation here return true; } template Type Cyclic_list::front() const { // enter your implementation here return Type(); } template Type Cyclic_list::back() const { // enter your implementation here return Type(); } template Single_node *Cyclic_list::head() const { // enter your implementation here return nullptr; } template Single_node *Cyclic_list::tail() const { // enter your implementation here return nullptr; } template int Cyclic_list::count( Type const &obj ) const { // enter your implementation here return 0; } template void Cyclic_list::swap( Cyclic_list &list ) { std::swap( list_head, list.list_head ); std::swap( list_tail, list.list_tail ); std::swap( list_size, list.list_size ); } template Cyclic_list &Cyclic_list::operator=( Cyclic_list const &rhs ) { Cyclic_list copy( rhs ); swap( copy ); return *this; } template void Cyclic_list::push_front( Type const &obj ) { // enter your implementation here } template void Cyclic_list::push_back( Type const &obj ) { // enter your implementation here } template Type Cyclic_list::pop_front() { // enter your implementation here return Type(); } template int Cyclic_list::erase( Type const &obj ) { // enter your implementation here return 0; }