#include <iostream>
#define MaxSize 100
using namespace std;
struct Sqlist {
int data[MaxSize];
int length;
};
void CreateList(Sqlist* &L,int elem[],int n) {
int i;
L = (Sqlist*)malloc(sizeof(Sqlist));
if (L) {
for (i = 0; i < n; ++i)
L->data[i] = elem[i];
L->length = n;
}
}
bool Delete_s_t(Sqlist* &L, int s, int t) {
int i, k = 0;
if (L->length == 0 || s >= t)
return false;
//此段算法为用k记录表中不在s与t之间的元素
for (i = 0; i < L->length; ++i) {
if (L->data[i]<s || L->data[i]>t) {
L->data[k] = L->data[i];
++k;
}
}
L->length = k;
//此段算法为用k记录表中在s与t之间的元素
/*for (i = 0; i < L->length; ++i) {
if (L->data[i] >= s && L->data[i] <= t)
++k;
else
L->data[i - k] = L->data[i];
}
L->length -= k;*/
return true;
}
int main() {
int i = 0;
int num[] = { 2,5,7,4,6,8,1,9,3 };
Sqlist* L;
CreateList(L, num, 9);
Delete_s_t(L, 2, 8);
for (i = 0; i < L->length; ++i)
cout << L->data[i];
return 0;
}
原文:https://www.cnblogs.com/keep1learning/p/14800229.html