#include <bits/stdc++.h>
#define maxSize 100
using namespace std;
typedef struct
{
int data[maxSize];
int length;
} SqList;
//输入
void input(SqList &L)
{
L.length = 0; //初始化顺序表长度为0
int x, i = 0;
scanf("%d", &x);
while (x != 9999)
{
L.data[i] = x;
L.length++;
i++;
scanf("%d", &x);
}
}
//输出
void output(SqList &L)
{
for (int i = 0; i < L.length; i++)
{
printf("data[%d]=%d\n", i, L.data[i]);
}
printf("\n");
}
//返回第一个比x大的元素的位置
int findElem(SqList &L, int x)
{
int i;
for (i = 0; i < L.length; i++)
{
if (L.data[i] > x)
{
return i;
}
}
return i;
}
//插入元素
void insertElem(SqList &L, int x)
{
int p = findElem(L, x); //找到插入位置p
for (int i = L.length - 1; i >= p; i--)
{
L.data[i + 1] = L.data[i];
}
L.data[p] = x;
L.length++;
}
//删除下标为p的元素
int deleteElem(SqList &L, int p, int &e)
{
if (p < 0 || p > L.length - 1)
{
return 0;
}
e = L.data[p];
for (int i = p; i < L.length - 1; i++)
{
L.data[i] = L.data[i + 1];
}
L.length--;
return 1;
}
int main()
{
SqList L;
input(L);
output(L);
insertElem(L, 3);
output(L);
int e;
if (deleteElem(L, 2, e))
{
printf("success!\ne=%d\n", e);
output(L);
}
else
{
printf("failure!\n");
}
return 0;
}
input:
1
2
4
5
6
9999
output:
data[0]=1
data[1]=2
data[2]=4
data[3]=5
data[4]=6data[0]=1
data[1]=2
data[2]=3
data[3]=4
data[4]=5
data[5]=6success!
e=3
data[0]=1
data[1]=2
data[2]=4
data[3]=5
data[4]=6