#include <stdio.h>
#define MaxSize 50
typedef int ElemType;//让顺序表存储其他类型的数据类型更加快捷
typedef struct {
ElemType data[MaxSize];
int len;
}SqList;
bool ListInsert(SqList &L,ElemType pos,ElemType element){
//判断pos是否合法,pos是插入的位置
if(pos<1 || pos>L.len+1){
return false;
}
//判断存储长度是否已经满了
if(L.len==MaxSize){
return false;
}
//把后面的元素依次往后移
for(int j=L.len;j>=pos;j--){
L.data[j] = L.data[j-1];
}
L.data[pos-1] = element;
L.len++;
return true;
}
//打印顺序表
void PrintList(SqList L){
int i;
for (i = 0;i<L.len;i++){
printf("%3d",L.data[i]);
}
printf("\n");
}
//删除
bool deleList(SqList &L,ElemType pos,ElemType &del){
if(pos<1 || pos>L.len){
return false;
} else{
del = L.data[pos-1];//保存被删除的值
for(int j = pos;j<L.len;j++){
L.data[j-1] = L.data[j];
}
L.len--;
}
}
int main(){
SqList L;//定义一个顺序表
bool ret;//用来装返回值
L.data[0] = 1;
L.data[1] = 2;
L.data[2] = 3;
L.len = 3;
int pos;
int element;
scanf("%d",&element);
ret = ListInsert(L,2,element);
if(ret){
printf("insert sqlist success\n");
PrintList(L);
} else{
printf("insert sqlist fail");
}
printf("\n------------------\n");
int del;
int j;
scanf("%d",&j);
ret = deleList(L,j,del);
if(ret){
printf("delete sqlist success\n");
printf("delete elment = %d\n",del);
PrintList(L);
}
return 0;
}
初始化顺序表(顺序表中元素为整型),里边的元素是1,2,3,然后通过scanf读取一个元素(假如插入的是6),插入到第2个位置,打印输出顺序表,每个元素占3个空格,格式为1 6 2 3,然后scanf读取一个整型数,是删除的位置(假如输入为1),然后输出顺序表 6 2 3,假如输入的位置不合法,输出false字符串。提醒,Language一定要选为C++。