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 ArrayList<ItemType>::insert(int newPosition, const ItemType& newEntry) 6: { 7: bool ableToInsert = (newPosition >= 1) && (newPosition <= itemCount + 1) 8: && (itemCount < maxItems); 9: if (ableToInsert) 10: { 11: // Make room for new entry by shifting all entries at 12: // positions from itemCount down to newPosition 13: // (no shift if newPosition == itemCount + 1) 14: for (int pos = itemCount; pos >= newPosition; pos--) 15: items[pos] = items[pos - 1]; 16: 17: // Insert new entry 18: items[newPosition] = newEntry; 19: itemCount++; // Increase count of entries 20: } // end if 21: 22: return ableToInsert; 23: } // end insert