【结构体】
#define MaxSize 3
typedef struct{
//一位数组,动态分配
int *data;
//数组长度
int length;
}SqList;
【顺序表初始化】
void ListInit(SqList& L){
L.data = (int*)malloc(sizeof(int)*MaxSize);
L.length = 0;
}
【顺序表插入操作】
//插入操作
//对顺序表L第i个位置插入元素e,i >= 1 && i <= length + 1
bool ListInsert(SqList &L,int i,int e){
//1 判断位置合法性
if(i <1 || i > L.length+1) return false;
for(int j = L.length-1;j >= i-1;j--){
L.data[j+1] = L.data[j];
}
L.data[i-1] = e;
L.length++;
return true;
}
【顺序表删除操作】
//删除操作
//对顺序表L删除第i个位置元素
bool ListRemove(SqList &L,int i){
if(i < 1 || i > L.length+1) return false;
int temp = L.data[i-1];
for(int j = i;j < L.length;j++){
L.data[j-1] = L.data[j];
}
L.length--;
return true;
}
【顺序表打印测试】
void ListPrint(SqList L){
for(int i = 0; i < L.length;i++){
cout << L.data[i] << " ";
}
}
【测试数据】
int main(){
SqList L;
ListInit(L);
ListInsert(L,1,2);
ListInsert(L,1,3);
ListInsert(L,1,4);
ListInsert(L,1,5);//发生扩容
ListInsert(L,1,1);
ListRemove(L,2);
ListPrint(L);
return 0;
}