Source of OverloadedEquality.cpp


  1: //  Created by Frank M. Carrano and Tim Henry.
  2: //  Copyright (c) 2013 __Pearson Education__. All rights reserved.

  4: // Interlude 5, pp 416 - 417.

  6: template <class ItemType>
  7: bool LinkedList<ItemType>::operator==(const LinkedList<ItemType>& rightHandSide) const
  8: {
  9:    bool isEqual = true; // Assume equal
 10:    
 11:    // First check number of items is the same
 12:    if (itemCount != rightHandSide.getLength())
 13:       isEqual = false;
 14:    else
 15:    {  // Then compare items
 16:       Node<ItemType>* leftSidePtr = headPtr;
 17:       Node<ItemType>* rightSidePtr = rightHandSide.headPtr;
 18:       
 19:       while ((leftSidePtr != nullptr) && (rightSidePtr != nullptr) && isEqual)
 20:       {
 21:          ItemType leftItem = leftSidePtr->getItem();
 22:          ItemType rightItem = rightSidePtr->getItem();
 23:          isEqual = (leftItem == rightItem);
 24:          
 25:          leftSidePtr = leftSidePtr->getNext();
 26:          rightSidePtr = rightSidePtr->getNext();
 27:       }  // end whiile
 28:    }  // end if
 29:    
 30:    return isEqual;
 31: }  // end operator==