#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
/*
* 对长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,
* 该算法删除线性表中所有值为x的数据元素
*/
#define MAX 5
typedef struct {
int data[MAX];
int length;
}SqList;
//初始化顺序表
void InitList(SqList& L)
{
for (int i = 0; i < MAX; i++)
{
L.data[i] = 0;
}
L.length = 0;
}
//给顺序表中赋值
void PutNum(SqList& L)
{
for (int i = 0; i < MAX; i++)
{
scanf("%d", &L.data[i]);
L.length++;
}
}
//打印顺序表
void PrintList(SqList L)
{
for (int i = 0; i < L.length; i++)
{
printf("%2d", L.data[i]);
}
}
//删除值为4的元素
void DelList(SqList& L,int a)
{
int k=0;
for (int i = 0; i < L.length; i++)
{
if (L.data[i] != a)
{
L.data[k] = L.data[i];
k++;
}
}
L.length = k;
}
int main()
{
SqList L;
InitList(L);
PutNum(L);
DelList(L,4);
PrintList(L);
}