1.顺序表L
#define InitSize 100
typedef struct{
ElemType *data;
int MaxSize,Length;
}SeqList;
2、 在顺序表L中第i个位置插入一个元素e
思路:第i个位置之后的元素后移,并将每一个元素都往后挪一个位置,在将e放入第i个位置,注意第i个位置的数组下标是i-1
bool ListInsert(SqList &L,int i,ElemType e ){
if(i<1||i>L.length+1)
return false;
if(L.length>=Maxsize)
return false;
for(int j=L.Length;j>=i;j--) //注意J的范围
L.data[j]=L.data[j-1];
L.data[i-1]=e;
L.Length++;
return true;
}
3、在顺序表L中删除第i个位置的元素
思路:将第i个位置的值赋给一个变量e,后续所有元素前移一个位置。
bool ListDelete(SqList &L,int i,ElemType e){
if(i<1||i>L.length+1) //i代表的是位置,最往前在第一个位置,最往后在所有元素的后面
return false;
e=L.data[i-1];
for(int j=i-1;j<L.length-1;j++){
//j代表的是数组下标,大于等于i-1,小于等于length-2(length-1是最后一个数组下标,最后应该是倒数第一个数组的值赋给倒数第二个数组,所以j最后应该是等于length-2)
L.data[j]=L.data[j+1];
}
L.Length--;
return true;
}
4、在顺序表中查找值为e的元素,返回位序
int ListSearch(SqList &L,ElemType e){
int i;
for(i=0;i<L.length;i