代码的输入是否合法,循环是否可以执行非常重要;一定要去考虑所有可能出现的错误。
最重要一点搞清楚,为什么加要从后方开始,减要从前方
#include <stdio.h>
#define maxsize 10
typedef struct{
int data[maxsize];
int length;
}sqlist;
bool insert(sqlist &l,int i,int e){
//此处的i是位序,而非数组下标
if(i<1||i>l.length+1){
return false;
}//意思是最好不要在顺序表留出空余位置
if(l.length>=maxize){
return false;
}
for(int j=l.length;j>=i;j--){
l.data[j]=l.data[j-1];
}
l.data[i-1]=e;
l.length++;
return true;
}
bool delete(sqlist &l,int i,int &e){
if(i<1||i>l.length+1){
return false;
e=l.data[i-1];
for(int j=i;j<l.length;j++){
l.data[j-1]=l.data[j];}
l.length--;
return true;
}
int main(){
int e=1;//先随便赋一个值
//接下来是删除操作(因为你需要知道是否删除成功)
if(delete(l,3,e))
printf("删除成功,被删元素为%d",e);
else
printf("删除失败");
}
}