已知长度为n的线性表A采用顺序存储结构,请写一个时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法可删除线性表中所有值为item的数据元素。
代码如下:
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10
#define OK 1
#define ERROR 0
#define Free -1
typedef int Status;
typedef int ElemType;
struct Student {
int id;
};
typedef struct {
Student* elem;
int length;
}SqList;
//创建
Status Cj_List(SqList& L) {
if (L.length >= 0) {
printf("创建失败!原因:内存已被创建。\a\n");
return ERROR;
}
L.elem = (Student*)malloc(MAXSIZE * sizeof(Student));
if (L.elem) {
L.length = 0;
return OK;
}
return ERROR;
}
//插入
Status Cr_List(SqList& L, int i, Student e) {
if (L.length < 0) {
printf("插入失败!原因:内存未被创建!\a\n");
return ERROR;
}
if (L.length >= MAXSIZE) {
printf("插入失败!原因:顺序表已满。\a\n");
return ERROR;