链表问题设线性表的数据元素都为整数,存放在顺序表 S 中且递增有序。设计算法,将 x 插入到顺序表 S 的适当位置上,以保持线性表的有序性。
谢谢#include <stdio.h>
#include <stdlib.h>
void Insertlist(struct sqlist*l,int x ,int i);
#define size 100
struct sqlist
{
int data[size];
int length;
};
void main()
{ struct sqlist *s;
int t,n,i,x;
s=(struct sqlist*)malloc(sizeof(struct sqlist));
s->length=0;
printf("请输入线性表的大小:");
scanf("%d",&n);
printf("请输入原线性表有序递增的数据元素:\n");
for(i=0;i<n;i++)
{
scanf("%d",&t);
}
printf("请输入一个数字:");
scanf("%d",&x);
Insertlist(s,x,i);
printf("插入元素后的线性表数据元素的顺序为:");
for(i=0;i<s->data[i];i++)
{
printf("%d",s->data[i]);
}
}
void Insertlist( sqlist l,int x ,int i)
{
if(i<0||i>l-length) exit(1);
if(l->length>=100) exit(1);
for(i=0;i<l.length;i++)
{
if(x<=l.elem[i])
{
for(q=l.length;q>=i;q++)
l.elem[q+1]=l.elem[q];
l.elem[i]=x;
break;
}
else
{
l.elem[l.length+1]=x;
break;
}
}
L.length++;
}