顺序表区间元素删除
若一个线性表L采用顺序存储结构存储,其中所有的元素为整数。设计一个算法,删除元素值在[x,y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1)。
输入格式:
三行数据,第一行是顺序表的元素个数,第二行是顺序表的元素,第三行是x和y。
输出格式:
删除元素值在[x,y]之间的所有元素后的顺序表。
输入样例:
10
5 1 9 10 67 12 8 33 6 2
3 10
输出样例:
1 67 12 33 2
我的代码:
#include<iostream>
using namespace std;
#define maxsize 1000 //定义线性表的长度最大为1000
typedef struct //线性表的结构
{
int arraylist[maxsize]; //定义一个大小为maxsize的数组来存储线性表中的元素
int length; //线性表的长度
}sqlist;
void initlist(sqlist& l) //初始化线性表
{
l.length = 0; //将表长初始化为0
}
void pluselem(int n,sqlist &l, int a[]) //向线性表中输入元素
{
for (int i = 0; i < n; i&#