版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CSDN___CSDN/article/details/82821302
问题:
1.将顺序表(a1,a2,…,an)重新排列以a1为界的两部分:a1前面的值均比a1小,a1后面的值均比a1大(这里假设数据元素的类型具有可比性,不妨设为整型)。
头文件与该头文件一样:【数据结构】顺序表的实现(C语言)
#include "stdio.h"
#include "sequlist.h"
int main ()
{
int i,length,input_number,compare;
sequence_list slt,new_slt;
while (1)
{
init(&slt);
init(&new_slt);
printf("请输入想要创建的顺序表的长度:");
scanf("%d",&length);
printf("请输入%d个数字:\n",length);
for (i=1;i<=length;i++)
{
scanf("%d",&input_number);
append(&slt,input_number);
}
if(!isempty(&slt))
{
compare=slt.a[0];
printf("a1=%d\n",compare);
for (i=1;i<slt.size_;i++)
{
if(slt.a[i]<compare)
{
append(&new_slt,slt.a[i]);
}
}
append(&new_slt,compare);
for (i=1;i<slt.size_;i++)
{
if(slt.a[i]>compare)
{
append(&new_slt,slt.a[i]);
}
}
}
else ;
printf("原来顺序表:");display(&slt);printf("\n");
printf("新排列顺序表:");display(&new_slt);printf("\n");
}
return 0;
}