1: // Created by Frank M. Carrano and Timothy M. Henry. 2: // Copyright (c) 2017 Pearson Education, Hoboken, New Jersey. 4: // Listing C4-4 6: template<class ItemType> 7: bool LinkedList<ItemType>::remove(int position) 8: { 9: bool ableToRemove = (position >= 1) && (position <= itemCount); 10: if (ableToRemove) 11: { 12: if (position == 1) 13: { 14: // Remove the first node in the chain 15: headPtr = headPtr –>getNext(); 16: } 17: else 18: { 19: // Find node that is before the one to delete 20: auto prevPtr = getNodeAt(position – 1); 21: 22: // Point to node to delete 23: auto curPtr = prevPtr –>getNext(); 24: 25: // Disconnect indicated node from chain by connecting the 26: // prior node with the one after 27: prevPtr –>setNext(curPtr –>getNext()); 28: } // end if 29: 30: itemCount––; // Decrease count of entries 31: } // end if 32: 33: return ableToRemove; 34: } // end remove