insert(insertIndex, newElem)
-- Recipe for "insert(index, newElement)" -- 1. If index is not valid (<0 or >size) throw exception 2. If !hasCapacity() grow() 3. shiftRightFrom(index) 4. elements[index] = newElement 5. size++ The logic for "shiftRightFrom" will use basic iteration and access operations. Hint: be careful not to "wipe out" existing data.