Source of OverloadedEquality.cpp


  1: //  Created by Frank M. Carrano and Timothy M. Henry.
  2: //  Copyright (c) 2017 Pearson Education, Hoboken, New Jersey.

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