顺序表的插入和删除
一、首先了解到线性表两种存储方式,一种是顺序表的形式,另一种是链表的形式。顺序表的特点是元素按顺序存放且地址连续。
1.顺序表的插入
Size是实际的元素个数,到i这个位置后每一个往后移一个元素,移动是因为要留出i这个位置空出来,然后把要插入的对象复制放进去。
Public void insert(int I , Object x ) throws Exception {
.
. . . .
省略i的合理范围,1、例如图中所示,0 到 6 都是合法范围。2、如果存储空间已经满了就不能插如元素了。
. . . . .
for(int j = size; j > i : j--){
listArray[j]=listArray[j-1];
}
listArray[i] = x;
size ++;
}
2、顺序表的删除
函数 delete(int i)是针对i是它要删除的元素的位置,首先要把i这个位置备份,然后循环查找i的位置,每循环一遍就要把j的位置往前移一格,完成后整个元素的数量就要减一,因为删除了一个嘛。
Public Object delete(int i) throws Exception{
……
同样的这里省略的是删除i的合理范围
……
Object it = listArray[i];//备份删除的元素
For(int j = i ; j < size – 1; j ++)
listArray[j] = listArray[j + 1 ];
size --;
return it;
}
只能删除小于等于六的元素,每删除一个元素后,后面跟着的所有元素都会向前移动一格,但空的空间是不能删除的。如果顺序表是空的,那也无所谓有删除了。