#include <stdio.h>
#include <iostream>
using namespace std;
#define MAXSIZE 100
typedef struct
{
int value[MAXSIZE];
int length;
} Sqlist;
void InitList(Sqlist &L)
{
L.length = 0;
}
void InsertList(Sqlist &L)
{
int num = 0;
printf("请输入要入元素的个数:");
cin >> num;
for (int i = 0; i < num; i++)
{
printf("请输入第%d个元素的值:", i + 1);
cin >> L.value[i];
L.length++;
}
}
void PrintSqList(Sqlist L)
{
printf("打印顺序表:");
for (int i = 0; i < L.length; i++)
{
printf("%d ", L.value[i]);
}
printf(" 长度为%d\n", L.length);
}
void DeleteElem(Sqlist &L, int item)
{
int i = 0, j = L.length - 1;
while (i < j)
{
while (i <= j && L.value[i] != item)
i++;
while (i <= j && L.value[j] == item)
j--;
if (i < j)
{
L.value[i++] = L.value[j--];
}
}
L.length = j + 1;
}
int main()
{
Sqlist L;
int deleteNum = 4;
InitList(L);
InsertList(L);
PrintSqList(L);
DeleteElem(L, deleteNum);
printf("删除%d之后打印顺序表:", deleteNum);
PrintSqList(L);
}
运行结果如下