1: // Created by Frank M. Carrano and Timothy M. Henry. 2: // Copyright (c) 2017 Pearson Education, Hoboken, New Jersey. 4: // The private method insertNode: 5: // Adds a given node to the subchain pointed to by subChainPtr 6: // at a given position. Returns a pointer to the augmented subchain. 7: template<class ItemType> 8: Node<ItemType>* LinkedList<ItemType>::insertNode(int position, Node<ItemType>* newNodePtr, 9: Node<ItemType>* subChainPtr) 10: { 11: if (position == 1) 12: { 13: // Insert new node at beginning of subchain 14: newNodePtr->setNext(subChainPtr); 15: subChainPtr = newNodePtr; 16: itemCount++; // Increase count of entries 17: } 18: else 19: { 20: Node<ItemType>* afterPtr = insertNode(position - 1, newNodePtr, subChainPtr->getNext()); 21: subChainPtr->setNext(afterPtr); 22: } // end if 23: 24: return subChainPtr; 25: } // end insertNode