题目要求:设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。
完整代码:代码如下:
#define MAXSIZE=线性表可能达到的最大值
typedef struct
{ datatype data[MAXSIZE];
int last;
}
void Insert(SqList *va,int x)
{
int i;
if(va->length+1>MAXSIZE)
{
printf("存储空间已满");
return;
}
for(i=va->length-1;va->data[i]>x&&i>=0;i--)
{
va->data[i+1]=va->data[i];
}
va->data[i+1]=x;
va->length++;
}
#include<stdio.h>
#define MAXSIZE 100
typedef struct
{
int data[MAXSIZE];
int length;
}SqList;
void Insert(SqList *va,int x)
{
int i;
if(va->length+1>MAXSIZE)
{
printf("存储空间已满");
return;
}
for(i=va->length-1;va->data[i]>x&&i>=0;i--)
{
va->data[i+1]=va->data[i];
}
va->data[i+1]=x;
va->length++;
}
int main()
{
int m,x;
SqList va;
printf("请输入线性表元素个数m:");
scanf("%d",&m);
printf("请输入线性表数据:");
for(int i=0;i<m;i++)
scanf("%d",&va.data[i]);
va.length=m;
printf("请输入要插入的元素x:");
scanf("%d",&x);
Insert(&va,x);
printf("插入x后的新线性表为:");
for(int t=0;t<va.length;t++)
printf("%d ",va.data[t]);
}