(1)根据输入顺序表的长度n和各个数据元素值建立一个顺序表,输出顺序表中各元素值,对比是否操作成功。
(2)根据输入的n个非递减的有序数据建立一个有序顺序表,并输出有序顺序表中各元素值。在有序顺序表L中插入一个值为x的元素使得插入后顺序表仍然有序,输出插入后的顺序表中各元素值。
(3)删除有序顺序表中重复的元素,并输出删除后的顺序表中各元素值。
#include <bits/stdc++.h>
using namespace std;
typedef struct
{
int*elem;
int length;
}sq;
sq l;
void cre(sq *l,int n)
{
l->elem=new int [200];
l->length=n;
for(int i=1;i<=n;i++)
{
scanf("%d",&l->elem[i]);
printf("%d\n",l->elem[i]);
}
}
void cha(sq *l,int x)
{
if(l->length==200)
return ;
for(int i=1;i<=l->length;i++)
{
if(l->elem[i]>x)
{
for(int j=l->length;j>=i;j--)
l->elem[j+1]=l->elem[j];
l->elem[i]=x;
l->length++;
return ;
}
}
}
void quzho(sq *l)
{
for(int i=1;i<=l->length-1;i++)
{
if(l->elem[i]==l->elem[i+1])
{
for(int j=i;j<=l->length;j++)
l->elem[j]=l->elem[j+1];
l->length--;
}
}
printf("去重后元素");
printf("\n");
for(int i=1;i<=l->length;i++)
printf("%d\n",l->elem[i]);
}
int main()
{
int n;
int x;
printf("请输入元素个数:");
scanf("%d",&n);
printf("插入元素");
scanf("%d",&x);
cre(&l,n);
cha(&l,x);
printf("插入后元素");
printf("\n");
for(int i=1;i<=l.length;i++)
printf("%d\n",l.elem[i]);
quzho(&l);
return 0;
}