(1)插入操作:
bool ListInsert(Sqlist &L,int i,int e){
if(i<1||i>L.length+1)
return false;//判断i的范围
if(L.length>MaxSize)
rerurn false;//当前存储空间已满,不能插入
for(j=L.length;j>=i;j--){//将第i个元素及其后面的元素往后移
L.data[j]=L.data[j-1];
}
L.data[i-1]=e;//在第i处放e
L.length++;//长度加1
return true;
}
(2)删除操作:
bool LisDelete(SqList &L,int i,int &e){//e用引用型参数
if(i<1||i>L.length)
return false;//判断i的范围
e=L.data[i-1];//将被删除的元素赋值给e
for(j=L.length;j>=i;j--)
L.data[j-1]=L.data[j]; //将i之后的元素前移
}
L.length--//长度减1
return true;}
(3)按位查找(获取L表中第i位元素的值):
#define MaxSize 10//定义最大长度
typedef struct{
ElemType data[MaxSize];//用静态的数组存储数据元素
int length;//顺序表的当前长度
}SqList;//顺序表的类型定义
Elemtype GetElem(SqList L,int i){//判断i的值是否合法
return length.data[i-1]; //注意第i个元素的位置是i-1
}
(4)按值查找:
#define InitSize 10//定义最大长度
typedef struct{
ElemType *data;//用静态数组存放当前元素
int length;//顺序表的当前长度
}; SqList;
int LocateElem(SqList L,ElemType e){//在顺序表中查找第一个元素值为e的元素并返回其位序
for(int i=0;i<L.length;i++)
if(L.data[i]==e)
return i+1;//数组下标为 i的函数值为e,其位序位i+1;
return 0;
}