#include "ece250.h" #include "Cyclic_double_list.h" #include "Exception.h" template Cyclic_double_list::Cyclic_double_list(): list_head( nullptr ), list_size( 0 ) { // empty constructor } template Cyclic_double_list::Cyclic_double_list( Cyclic_double_list const &list ): list_head( nullptr ), list_size( 0 ) { // enter your implementation here } template Cyclic_double_list::~Cyclic_double_list() { // enter your implementation here } template int Cyclic_double_list::size() const { // enter your implementation here return 0; } template bool Cyclic_double_list::empty() const { // enter your implementation here return true; } template Type Cyclic_double_list::front() const { // enter your implementation here return Type(); } template Type Cyclic_double_list::back() const { // enter your implementation here return Type(); } template Double_node *Cyclic_double_list::head() const { // enter your implementation here return nullptr; } template int Cyclic_double_list::count( Type const &obj ) const { // enter your implementation here return 0; } template void Cyclic_double_list::swap( Cyclic_double_list &list ) { std::swap( list_head, list.list_head ); std::swap( list_size, list.list_size ); } template Cyclic_double_list &Cyclic_double_list::operator=( Cyclic_double_list const &rhs ) { Cyclic_list copy( rhs ); swap( copy ); return *this; } template void Cyclic_double_list::push_front( Type const &obj ) { // enter your implementation here } template void Cyclic_double_list::push_back( Type const &obj ) { // enter your implementation here } template Type Cyclic_double_list::pop_front() { // enter your implementation here return Type(); } template Type Cyclic_double_list::pop_back() { // enter your implementation here return Type(); } template int Cyclic_double_list::erase( Type const &obj ) { // enter your implementation here return 0; } // You can modify this function however you want: it will not be tested template std::ostream &operator<<( std::ostream &out, Cyclic_double_list const &list ) { if ( list.empty() ) { out << "->0"; return out; } Double_node *ptr = list.head(); for ( int i = 0; i <= list.size(); ++i ) { out << "->" << ptr->retrieve(); ptr = ptr->next(); } out << std::endl; ptr = list.head(); for ( int i = 0; i <= list.size(); ++i ) { out << "->" << ptr->retrieve(); ptr = ptr->previous(); } return out; } // Is an error showing up in ece250.h or elsewhere? // Did you forget a closing '}' ?