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==