/*1.已知长度为n的线性表A采用顺序存储结构,请写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法可删除线性表中所有值为item的数据元素。例如:item=7线性表A: 3,4,7,6,7,2,9,8,10,7,11,9,7,8,5结果输出:3,4,6,2,9,8,10,11,9,8,5*/#include<iostream>#include<stdlib.h>#include<stdio.h>#define max 100int data[max];void start(list l);void shunxv(list* l, int n);void dellist(list* l, int item);void printlist(list l);typedef struct list //顺序表的存储结构定义{ int data[max]; //顺序表占用的数组空间 int last; //记录顺序表中最后一个元素在数组中的位置 空表为0}LIST;void start(list l) //初始化顺序表 设置为空表{ l.last = 0; printf("顺序表已初始化为空表\n");}void shunxv(list* l, int n) //顺序插入{ int i = 0; int j; while (i < n) { scanf_s("%d", &j); l->data[i] = j; i++; } l->last = n;}void dellist(list* l, int item) //对指定元素进行删除{ int k; int i; printf("请输入需要删除的值:\n"); scanf_s("%d", &item); if (data[i] == item) { for (k = i; i <= l->last; k++) { l->data[k] = l->data[k + 1]; //后面元素依次向前覆盖前一个元素 } l->last--; //删除元素后表长减一 }}void printlist(list l){ int i = 0; while (i < l.last) { printf("%d", l.data[i]); i++; }}int main(){ list l; start(l); int n; int item; printf(""); scanf_s("%d", n); printf("输入数字个数:"); shunxv(&l, n); printf("向顺序表中输入数据:"); printlist(l); dellist(&l, item); printlist(l); return 0;}