Description
初始化顺序表(顺序表中元素为整型),里边的元素是1,2,3,然后通过scanf读取一个元素(假如插入的是6),插入到第2个位置,打印输出顺序表,每个元素占3个空格,格式为1 6 2 3,然后scanf读取一个整型数,是删除的位置(假如输入为1),然后输出顺序表 6 2 3,假如输入的位置不合法,输出false字符串。提醒,Language一定要选为C++。
Input
第一次输入插入的元素值,第二次输入删除的位置
Output
假如插入的元素为6,那么输出为
1 6 2 3
假如删除的位置为1,那么输出为
6 2 3
代码展示:
#include<stdio.h>
#define MaxSize 50
typedef int ElemType;
typedef struct{
ElemType data[MaxSize];
int length;
}Sqlist;
bool SqlistInsert(Sqlist &L,int i,ElemType elem){
if(i<1||i>L.length+1){
return false;
}
if(L.length>=MaxSize)
return false;
for (int j = L.length; j >= i; j--) {
L.data[j]=L.data[j-1];
}
L.data[i-1]=elem;
L.length++;
return true;
}
void PrintList(Sqlist L){
for (int i = 0; i < L.length; ++i) {
printf("%3d",L.data[i]);
}
printf("\n");
}
bool SqlistDelete(Sqlist &L,ElemType dele){
if(dele<1||dele>L.length){
return false;
}
if(L.length>=MaxSize)
return false;
for (int j = dele; j <L.length; j++) {
L.data[j-1]=L.data[j];
}
L.length--;
return true;
}
void PrintList2(Sqlist L){
for (int i = 0; i < L.length; ++i) {
printf("%3d",L.data[i]);
}
printf("\n");
}
int main(){
Sqlist L;
bool ret;
bool del;
L.data[0]=1;
L.data[1]=2;
L.data[2]=3;
ElemType elem;
ElemType dele;
scanf("%d",&elem);
scanf("%d",&dele);
L.length=3;
ret=SqlistInsert(L,2,elem);
if(ret){
PrintList(L);
}
del= SqlistDelete(L,dele);
if(del){
PrintList2(L);
}else{
printf("false");
}
return 0;
}