代码如下
#include <stdio.h>
typedef struct {
int data[10];
int length;
}seqlist;
void initlist(seqlist*l) {
l->length = 0;
}
void createlist(seqlist*l, int n) {
if (n > 10) {
printf("overflow!\n");
}
printf("请输入向顺序表中元素的数值:\n");
for (int i = 0; i < n; i++) {
scanf_s("%d", &l->data[i]);
l->length++;
}
}
int delelist(seqlist* l, int i) {
if (i < 1 || i > l->length) {
printf("删除的位置有错误!\n");
}
int e = l->data[i - 1];
printf("删除的元素为:%d\n", e);
for (int j = i; j <= l->length; j++) {
l->data[j - 1] = l->data[j];
}
l->length--;
}
void displist(seqlist*l) {
printf("请输出顺序表中元素的数值:\n");
for (int i = 0; i < l->length; i++) {
printf("%d\t", l->data[i]);
}
printf("顺序表中元素的个数为:%d\n", l->length);
}
int main() {
seqlist l;
initlist(&l);
int n = 0;
int i = 0;
printf("请输入向顺序表输入的元素的个数:\n");
scanf_s("%d", &n);
createlist(&l, n);
printf("请删除顺序表中某一位置\n");
scanf_s("%d", &i);
delelist(&l, i);
displist(&l);
return 0;
}
编译如下:
请输入向顺序表输入元素的个数:
7
请输入向顺序表中的元素:
1
2
3
4
5
6
7
请删除顺序表中的某一位置:
4
删除的元素为:
4
请输入顺序表中元素的数值:
1 2 3 5 6 7 顺序表中元素的个数为:6