题目:一个顺序表L,其中元素递增有序排列,设计一个算法,插入一个元素x(x为int类型)后仍保持递增有序排列,假设插入成功
using namespace std;
typedef struct
{
int A[maxSize];
int length;
}Sqlist;
int main() {
int findElem(int x,Sqlist L);
void insertElem(Sqlist &L,int x); // 方法声明
Sqlist L = {{2,5,7,9,15,20},6}; // 定义一个结构体并初始化
insertElem(L,8); // 将x插入顺序表中
for(int i=0;i<L.length;i++)
{
cout<<L.A[i];
}
cout<<endl;
return 0;
}
int findElem(int x,Sqlist L) // 返回第一个比x大的元素的位置
{
int i;
for(i=0;i<L.length;i++)
{
if(L.A[i]<x) continue;
else break;
// if(x<L.A[i]) return i;
}
return i;
}
void insertElem(Sqlist &L,int x) // 插入操作
{
int p,i;
if(L.length==maxSize) return;
else
{
p = findElem(x,L);
for(i=L.length;i>=p;i--)
{
L.A[i+1] = L.A[i];
}
L.A[i+1]= x;
L.length++;
}
}
结果: