明确循环起点与终点
对于顺序表,插入数据依次后移(从后向前);删除数据依次前移(从前往后)
for (int i = size - 1; i >= index; i--) { //从后向前依次移动元素,直到i = index指向位置 elementData[i + 1] = elementData[i]; }
对于空间不够的情况,进行扩容。`
public static void grow(){ elementData = Arrays.copyOf(elementData,elementData.length << 1); }
对数据合法性进行效验(头插 index=0;尾插index=size)
if (index < 0 || index > size){ System.err.println("add index illegal!!"); return; }
在插入元素之前,先进行判断,插入的位置是不是在有效范围内。
插入操作的时间复杂度:最好情况O(1),最坏情况O(n),平均情况O(n)
删除操作的时间复杂度:最好情况O(1),最坏情况O(n),平均情况O(n)。
对于插入操作:移动元素时,先移动后面的元素,再移动前面的元素。
对于删除操作:移动元素时,先移动前面的元素,再移动后面的元素。
后面附上运行截图
import java.io.Op