#include "ece250.h" #include "Sorted_double_sentinel_list.h" #include "Exception.h" template Sorted_double_sentinel_list::Sorted_double_sentinel_list(): list_head( nullptr ), list_tail( nullptr ), list_size( 0 ) { // fix assignments... // enter your implementation here } template Sorted_double_sentinel_list::Sorted_double_sentinel_list( Sorted_double_sentinel_list const &list ): list_head( nullptr ), list_tail( nullptr ), list_size( 0 ) { // enter your implementation here } template Sorted_double_sentinel_list::~Sorted_double_sentinel_list() { // enter your implementation here } template int Sorted_double_sentinel_list::size() const { // enter your implementation here return 0; } template bool Sorted_double_sentinel_list::empty() const { // enter your implementation here return true; } template Type Sorted_double_sentinel_list::front() const { // enter your implementation here return Type(); } template Type Sorted_double_sentinel_list::back() const { // enter your implementation here return Type(); } template Double_node *Sorted_double_sentinel_list::head() const { // enter your implementation here return nullptr; } template Double_node *Sorted_double_sentinel_list::tail() const { // enter your implementation here return nullptr; } template int Sorted_double_sentinel_list::count( Type const &obj ) const { // enter your implementation here return 0; } template void Sorted_double_sentinel_list::swap( Sorted_double_sentinel_list &list ) { std::swap( list_head, list.list_head ); std::swap( list_tail, list.list_tail ); std::swap( list_size, list.list_size ); } template Sorted_double_sentinel_list &Sorted_double_sentinel_list::operator=( Sorted_double_sentinel_list const &rhs ) { Sorted_double_sentinel_list copy( rhs ); swap( copy ); return *this; } template void Sorted_double_sentinel_list::insert( Type const &obj ) { // enter your implementation here } template Type Sorted_double_sentinel_list::pop_front() { // enter your implementation here return Type(); } template Type Sorted_double_sentinel_list::pop_back() { // enter your implementation here return Type(); } template int Sorted_double_sentinel_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, Sorted_double_sentinel_list const &list ) { out << "head"; for ( Double_node *ptr = list.head(); ptr != nullptr; ptr = ptr->next() ) { if ( ptr == list.head() || ptr == list.tail() ) { out << "->S"; } else { out << "->" << ptr->retrieve(); } } out << "->0" << std::endl << "tail"; for ( Double_node *ptr = list.tail(); ptr != nullptr; ptr = ptr->previous() ) { if ( ptr == list.head() || ptr == list.tail() ) { out << "->S"; } else { out << "->" << ptr->retrieve(); } } out << "->0"; return out; } // Is an error showing up in ece250.h or elsewhere? // Did you forget a closing '}' ?