#include #include "Account-new.h" #include "AcctListNodeinclass.h" #include "AcctListListinclass.h" AcctList::AcctList () { currSize = 0; firstLink = 0; lastLink = 0; } // may want other constructors int AcctList::size() { return currSize; } bool AcctList::empty() { if (currSize == 0) { return true; } else { return false; } } void AcctList::ShowList() { AcctNode * acctPtr = firstLink; while (acctPtr != 0) { cout << *acctPtr << endl; acctPtr = acctPtr->nextLink; } return; } void AcctList::push_back(Account & newOne) { // AcctNode * newLink = new AcctNode(newOne); if (empty()) { firstLink = newLink; lastLink = newLink; } else { newLink->prevLink = lastLink; lastLink->nextLink = newLink; lastLink = newLink; } // MAR - we forgot to update the current size currSize++; } /* void push_front(Account & newOne); void pop_front(); void pop_back(); void remove(Account & toRemove); void erase (AcctNode * toErasePtr); */ void AcctList::erase (AcctNode * startPtr, AcctNode * keepPtr) { AcctNode * prevPtr = startPtr->PrevNode(); if (prevPtr == 0) { // deleting from front if (keepPtr == 0) { // deleting til end too !! firstLink = 0; lastLink = 0; } else { firstLink = keepPtr; firstLink->prevLink = 0; } } else { if (keepPtr == 0) { // deleting from end lastLink = prevPtr; lastLink->nextLink = 0; // prevPtr->nextLink = 0; } else { prevPtr->nextLink = keepPtr; keepPtr->prevLink = prevPtr; } } AcctNode * currPtr = startPtr; while (currPtr != keepPtr) { AcctNode * nextPtr = currPtr->NextNode(); delete currPtr; currPtr = nextPtr; currSize--; } return; } /*void insert (AcctNode * placePtr, Account & toAdd); private: AcctNode * firstLink; AcctNode * lastLink; int currSize; }; */