保证一定可以插入,删除的数一定在表中
#include <stdio.h>
typedef struct {
int data[100];
int length;
} SqList;
int findIndex(SqList L, int x) {
int i;
for (i = 0; i < L.length; ++i) {
if (x < L.data[i]) {
break;
}
}
return i;
}
SqList insert(SqList L, int x) {
int index = findIndex(L, x);
for (int i = L.length-1; i >= index; --i) {
L.data[i + 1] = L.data[i];
}
L.data[index] = x;
++(L.length);
return L;
}
SqList delete(SqList l, int x) {
int i;
for (i = 0; i < l.length; ++i) {
if (l.data[i] == x) {
break;
}
}
for (int j = i; j < l.length - 1; ++j) {
l.data[j] = l.data[j + 1];
}
--(l.length);
return l;
}
int main() {
SqList l;
l.length = 10;
for (int i = 0; i < 10; ++i) {
l.data[i] = 2 * i+1;
}
for (int i = 0; i < l.length; ++i) {
printf("%d\t", l.data[i]);
}
printf("\n");
l = insert(l, 12);
for (int i = 0; i < l.length; ++i) {
printf("%d\t", l.data[i]);
}
printf("\n");
l = delete(l, 11);
for (int i = 0; i < l.length; ++i) {
printf("%d\t", l.data[i]);
}
return 0;
}
1 3 5 7 9 11 13 15 17 19
1 3 5 7 9 11 12 13 15 17 19
1 3 5 7 9 12 13 15 17 19