问题:
已知一个顺序表中的各节点值是从大到小有序的,设计一个算法,插入一个值为x的节点,使顺序表中的节点仍然是从小到大有序的。
头文件与该头文件一样:【数据结构】顺序表的实现(C语言)
#include "stdio.h"
#include "sequlist.h"
int main ()
{
sequence_list slt;
int length,aa,i;
while(1)
{
init(&slt);
printf("请输入想要创建的顺序表的长度:");
scanf("%d",&length);
printf("请依次输入顺序表中的值\n");
for(i=0;i<length;i++)
{
scanf("%d",&aa);
append(&slt,aa);
}
display(&slt);
printf("\n排序以后的顺序表:");
sort_slt(&slt,length);
display(&slt);
printf("\n请输入想要插入的那个数:");
scanf("%d",&aa);
//精华部分(开始)
i=0;
while(slt.a[i]<aa) i++;
for(int j=slt.size_;j>i;j--)
{
slt.a[j]=slt.a[j-1];
}
slt.a[i]=aa;
slt.size_++;
//精华部分(结束)
display(&slt);
printf("\n");
}
return 0;
}